我正在學習ASP.NET MVC和實體框架代碼首先,LINQ通過創建一個簡單的Bug/Feature跟蹤系統。我想通過讓用戶提交上面的表單並在下面顯示提交的內容來模仿Twitter界面。我不確定如何構建強類型視圖和上述模型。我想將我的創建和索引視圖合併到一個視圖中,問題是創建需要一個類型條目(Pylon.Models.Entry
),而索引需要IEnumerable條目(IEnumerable<Pylon.Models.Entry>
)。以下是我的viewmodel類和Display視圖。我只是從「創建」和「索引」視圖複製腳手架生成的代碼,明顯混合不同的模型導致運行時錯誤,因此視圖被破壞。我的問題是我如何重組視圖。ASP.NET MVC強類型ViewModel - 組合創建/列表視圖
// Entry ViewModel
public class EntryViewModel
{
public Entry Entry { get; set; }
public IEnumerable<Entry> Entries { get; set; }
}
@* Display View *@
@model ?
@{
ViewBag.Title = "Display";
}
<hr />
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Entry</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Description)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.OpenDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.OpenDate)
@Html.ValidationMessageFor(model => model.OpenDate)
</div>
<div class="editor-label">
Paradigm
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.ParadigmId, ((IEnumerable<Pylon.Models.Paradigm>)ViewBag.PossibleParadigms).Select(option => new SelectListItem
{
Text = (option == null ? "None" : option.Name),
Value = option.ParadigmId.ToString(),
Selected = (Model != null) && (option.ParadigmId == Model.ParadigmId)
}), "Choose...")
@Html.ValidationMessageFor(model => model.ParadigmId)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<hr />
<table>
<tr>
<th></th>
<th>
Description
</th>
<th>
OpenDate
</th>
<th>
Type
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@item.Description
</td>
<td>
@String.Format("{0:d}", item.OpenDate)
</td>
<td>
@(item.Paradigm == null ? "None" : item.Paradigm.Name)
</td>
</tr>
}
</table>
任何指針或更好的教程/工作代碼將是巨大的。
非常感謝,這正是需要發生的事情。 – CyberUnDead 2011-02-25 17:23:39