我继承了一个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