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

  • Dion Coulls

    Dion Coulls

    16 AĞUSTOS 2006
  • ElChakotay Andrich

    ElChakotay A

    10 EKİM 2013
  • Hudson Music

    Hudson Music

    13 Mart 2007