【发布时间】:2014-08-14 17:11:46
【问题描述】:
我的网站上有一个侧边栏,其中包含一个绑定到视图模型的文本框,并且需要出现在我网站的所有视图中。首先,我创建了 viewmodel 类和 viewmodel cshtml 文件(都在 Shared 文件夹中):
类:
namespace CaseLaw.Web.Models.Shared
{
public class SidebarViewModel
{
public string SearchString { get; set; }
}
}
编辑器模板:
@model CaseLaw.Web.Models.Shared.SidebarViewModel
<div class="form-group">
<div class="input-group">
@Html.TextBoxFor(m => m.SearchString, new { @class = "form-control", placeholder = "Search the Database" })
<span class="input-group-btn">
<input type="submit" class="btn btn-default caselawMainbtn" value="Search" />
</span>
</div>
</div>
之后,我创建了一个调用 EditorTemplate 的局部视图:
@model CaseLaw.Web.Models.Shared.SidebarViewModel
<div class="row caselawSidebarImg">
<h2 id="caselawTitle">Caselaw</h2>
<h4 id="caselawSubTitle">The complete database.</h4>
</div>
<div class="row caselawSearchForm">
<div class="col-sm-12">
@using (Html.BeginForm("Index", "OpinionDocument", new { SearchString = Model.SearchString }, FormMethod.Get, new { @class = "form-inline" }))
{
@Html.EditorForModel()
}
</div>
</div>
<div class="row caselawSidebarMenu">
<div class="col-sm-12">
<ul>
<li><a href="#">Dashboard</a></li>
<li><a href="#">Your Notes</a></li>
<li><a href="#">Your Bookmarked Cases</a></li>
<li><a href="#">Your Projects</a></li>
<li><a href="#">Recently Viewed</a></li>
</ul>
</div>
</div>
然后,我在我的一个观点上调用了部分观点:
<div class="col-sm-2 caselawSidebar">
@{Html.RenderPartial("_Sidebar");}
</div>
问题在于,该视图绑定到另一个模型,而不是部分视图内的编辑器模板中所需的模型,因此应用程序会引发错误。如何将正确的模型发送到 Partialview,并能够在我的整个网站中使用它?
谢谢!
【问题讨论】:
标签: c# asp.net-mvc-5 asp.net-mvc-partialview mvc-editor-templates asp.net-mvc-viewmodel