我繼承了一個MVC網站,並被要求將兩個頁面合併爲一個。由於兩個視圖都有自己的視圖模型,我想不是將兩個虛擬機放在一起,而是使用局部視圖來顯示,在這種情況下,視圖中的時鐘組稱爲Clock_Detail。但是,我需要讓GroupId填充時鐘組的數據。將參數傳遞給MVC部分視圖時感到困惑?
因此,已經很少使用局部視圖我如何得到這個工作困惑。 我創建了一個新的查看名爲_ClockGroup.cshtml
和抄襲和其他頁面粘貼一些基本的代碼只是爲了看看我是否能得到任何顯示。
在我ClockDetail控制器添加以下。
public PartialViewResult ClockGroup(int groupId)
{
ClockGroupViewModel vm = DAL.GetClockGroupDetail(groupId);
return PartialView(vm);
}
這裏是_ClockGroup.cshtml
@model site.Models.ViewModels.ClockGroupViewModel
<div class="form-group">
@Html.LabelFor(m => m.GroupId, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.EditorFor(m => m.GroupId, new { htmlAttributes = new { @class = "form-control", disabled = "disabled", @readonly = "readonly" } })
</div>
<div class="form-group">
@Html.LabelFor(m => m.GroupName, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.EditorFor(m => m.GroupName, new { htmlAttributes = new { @class = "form-control", autofocus = "autofocus" } })
@Html.ValidationMessageFor(m => m.GroupName, "", new { @class = "text-danger" })
</div>
這是從clock_detail.cshtml視圖。它使用以下模型,然後將「部分」添加到此視圖。
@model site.Models.ViewModels.ClockDetailViewModel
@Html.Partial("_ClockGroup")
當然我得到該模型通過一個字典類型「site.Models.ViewModels.ClockDetailViewModel」
錯誤,但字典需要的時間「site.Models.ViewModels.ClockGroupViewModel"
的典範項目。
我需要繼續前進,兩者的ViewModels結合在了一起,只使用單一的視圖模型?
通過你在你的諧音編寫代碼的方式,你應該看看使用[模板代替](http://www.growingwiththeweb.com/2012/12/aspnet-mvc-display-and-editor- templates.html)。模板是有利的,因爲它們讀得更好,並且調用它們的約定使它們更容易診斷。我很少使用偏分量。 –
我會看看模板。如果它有助於代碼的可維護性,我總是會嘗試一些東西。 – Caverman