MVC 3 多表单模型传递到字典
Posted
技术标签:
【中文标题】MVC 3 多表单模型传递到字典【英文标题】:MVC 3 multiple forms model passing to dictionary 【发布时间】:2012-02-14 09:53:36 【问题描述】:我对 MVC 3 很陌生,但我遇到了一个问题。主要布局如下:
<body>
<div id="conteiner_body">
<div id="conteiner_main">
<div id="container_top">
@ html.RenderPartial("Basket");
@ Html.RenderPartial("MenuTop");
</div>
<div id="left_side_border">
<div id="left_side">
@ Html.RenderPartial("SearchBox");
@ Html.RenderAction("Index", "LeftMenu");
</div>
</div>
<div id="content">
@RenderBody()
</div>
@ Html.RenderPartial("Footer");
</div>
</div>
</body>
我在页面上有 3 个表单。首先是在 MenuTop 视图中:
@model Models.LogOnModel
<div id="conteiner_menu_top">
<div id="menu_top">
<div id="login">
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@
using (Html.BeginForm("LogOn", "Account"))
@Html.TextBoxFor(m => m.UserName)
@Html.PasswordFor(m => m.Password)
@Html.CheckBoxFor(m => m.RememberMe)
<input type="submit" value="Login" />
<input type="button" value="Registr" onclick="document.location.href = '/Account/Register'" />
</div>
</div>
</div>
第二个在SearchBox中:
@using (Html.BeginForm("Search", "SearchBox"))
<div id="search_box">
<h2>Search</h2>
<input name="searchWord" class="text" type="text" />
<a href="rozsirene_vyhledavani">Advanced</a>
<input class="submit" type="submit" value="Search" />
</div>
当然还有 RenderBody 中的表单,它会根据上下文而变化。 问题是,当我从 RenderBody() 发布一些表单时,例如。注册,我收到以下错误:
传入字典的模型项是类型 'Models.RegisterModel',但是这个字典需要一个模型项 输入“Models.LogOnModel”。
我尝试将自己的字典添加到 MenuTop 和 SearchBox:
Html.RenderPartial("MenuTop", new ViewDataDictionary(Models.LogOnModel))
Html.RenderPartial("SearchBox", new ViewDataDictionary(IEnumerable<Product>))
但在这种情况下,我收到以下错误:
CS0119:“Models.LogOnModel”是“类型”,在给定上下文中无效
有没有人知道如何解决这个问题?非常感谢。
【问题讨论】:
【参考方案1】:@Html.RenderPartial("MenuTop", new Models.LogOnModel());
@Html.RenderPartial("SearchBox", Enumerable.Empty<Product>());
【讨论】:
以上是关于MVC 3 多表单模型传递到字典的主要内容,如果未能解决你的问题,请参考以下文章
传递到字典中的模型项的类型为'System.Collections.Generic.List`1 []',但此字典需要[duplicate]类型的模型项