SORU
18 Aralık 2012, Salı


ASP.net kullanarak kısmi manzaralı 4 MVC

Son zamanlarda etrafta ASP.NET MVC ile oynamak (4) başladım, ama yaşıyorum bu sorunu kendime adapte edemiyorum. Bunu bildiğin zaman kolay olmadığına eminim.

Aslında benim Dizin aşağıdaki görünüm yapmaya çalışıyorum:

  1. Liste türü veritabanında geçerli öğeler "Not" Dizin görünümü (o kadar kolay)
  2. Aynı Dizin görünümü (çok) kolay değil, yeni öğeler oluşturmak.

Kısmi bir görünüm ihtiyacım vardı, ve aşağıdaki (_CreateNote.olarak yaratılmış olduğunu düşündüm cshtml):

@model QuickNotes.Models.Note
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

<fieldset>
    <legend>Note</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.Content)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Content)
        @Html.ValidationMessageFor(model => model.Content)
    </div>
    <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>
}

Özgün benim Dizin görünümü (Dizin.cshtml) bu kısmi görünümünü oluşturmak için çalışıyorum:

@model IEnumerable<QuickNotes.Models.Note>


@{
    ViewBag.Title = "Personal notes";
}

<h2>Personal notes</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>

<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Content)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Content)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
                @Html.ActionLink("Details", "Details", new { id=item.ID }) |
                @Html.ActionLink("Delete", "Delete", new { id=item.ID })
            </td>
        </tr>
    }
</table>

<div>
    @Html.Partial("_CreateNote")
</div>

(kullanımı: @Html.("") _CreateNote)Kısmi Ancak. Bu, aşağıdaki hata iletisini almak gibi görünmüyor:

Line 35: 
Line 36: <div>
Line 37:     @Html.Partial("_CreateNote");
Line 38: </div>

Source File: c:\Dropbox\Projects\workspace .NET MVC\QuickNotes\QuickNotes\Views\Notes\Index.cshtml    Line: 37 

Stack Trace: 


[InvalidOperationException: The model item passed into the dictionary is of type 'System.Data.Entity.DbSet`1[QuickNotes.Models.Note]', but this dictionary requires a model item of type 'QuickNotes.Models.Note'.]
   System.Web.Mvc.ViewDataDictionary`1.SetModel(Object value)  405487

Benim NotesController bu gibi görünüyor:

public ActionResult Index()
{

    var model = _db.Notes;

    return View(model);
}

//
// GET: /Notes/Create

public ActionResult Create()
{
    return View();
}

//
// GET: /Notes/_CreateNote - Partial view
public ViewResult _CreateNote()
{
    return View("_CreateNote");
}

Bence ilgisi var aslında Dizin görünümü kullanarak modeli farklı olarak içinde @model IEnumerable, ama ne olursa olsun ben değiştirmek etrafından kullanarak RenderPartial, RenderAction, değişen ActionResult için ViewResult vb, tam olarak göremiyorum.

Herhangi bir ipucu büyük mutluluk duyacağız! Bana eğer daha fazla bilgiye ihtiyacınız olursa haber verin lütfen. Gerekirse tüm proje zip aşağı mutlu olurum.

CEVAP
18 Aralık 2012, Salı


Size kısmi görünümü yük kodunu değiştir:

@Html.Partial("_CreateNote", new QuickNotes.Models.Note())

Bu kısmi görünümü bir Not bekliyor ama IEnumerable hangi ana görünüm modeline geçmiş oluyor çünkü

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BDGcustoms

    BDGcustoms

    24 NİSAN 2011
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008