首页 / C# / c#-MVC发布页面部分-模型绑定失败
c#-MVC发布页面部分-模型绑定失败
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-MVC发布页面部分-模型绑定失败,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1060字,纯文字阅读大概需要2分钟。
内容图文
![c#-MVC发布页面部分-模型绑定失败](/upload/InfoBanner/zyjiaocheng/681/08d4ad478078406a9e711daf74b560f3.jpg)
我正在尝试发布页面的一部分,并将其绑定到控制器上的视图模型.我的SearchVM编辑器模板:
@Html.TextBoxFor(model => model.TestText, new { @class = "form-control ",
@placeholder = "TEXT" , @id="test" })
<input type="submit" value="Submit" />
Index.cshtml:
@using (Html.BeginForm("Search", "Pencil", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
@Html.EditorFor(model => model.SearchVM);
}
控制器:
public ActionResult Search(SearchVM vm)
{
// ...
}
当我在testText文本框中键入内容并单击Submit时,我会执行搜索操作,但vm.TestText为空,因此无法将表单字段从编辑器模板绑定到视图模型.任何想法?
解决方法:
发生这种情况的原因是,作为@model传递给视图的类包装了SearchVM类,并且当您调用@ Html.EditorFor(model => model.SearchVM)时,它将使用前缀SearchVM呈现输入:
<input id="SearchVM_TestText" name="SearchVM.TestText" value="" ... />
反过来,当发布回控制器时,ModelBinder将无法反序列化为SearchVM
您可以做的是使用this EditorFor重载:
@Html.EditorFor(model => model.SearchVM, "_SearchVM", "");
其中_SearchVM是您的编辑器模板的名称.传递“”作为htmlFieldName参数将删除输入中不需要的SearchVM前缀.
内容总结
以上是互联网集市为您收集整理的c#-MVC发布页面部分-模型绑定失败全部内容,希望文章能够帮你解决c#-MVC发布页面部分-模型绑定失败所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。