我可以用
@Html.HiddenFor(x=> ViewData["crn"])
但是,我得到,
< input id =“ViewData_crn_”name =“ViewData [crn]”type =“hidden”value =“500”/>
为了避免这个问题(id = ViewData_crn_和name = ViewData [crn]),我尝试执行以下操作,但是没有设置“value”属性。
@Html.HiddenFor(x => x.CRN,new { @value="1"}) @Html.HiddenFor(x => x.CRN,new { @Value="1"})
生成
<input id="CRN" name="CRN" type="hidden" value="" /> <input Value="500" id="CRN" name="CRN" type="hidden" value="" />
我做错了吗?
谢谢
解决方法
你试过使用视图模型而不是ViewData吗?以“For”和“lambda”表达式结尾的强类型助手无法使用弱类型的结构(如ViewData)。
我个人不使用ViewData / ViewBag。我定义视图模型,并将我的控制器操作通过这些视图模型到我的视图。
例如在你的情况下,我将定义一个视图模型:
public class MyViewModel { [HiddenInput(DisplayValue = false)] public string CRN { get; set; } }
让我的控制器动作填充这个视图模型:
public ActionResult Index() { var model = new MyViewModel { CRN = "foo bar" }; return View(model); }
然后我的强类型视图只是使用一个EditorFor帮助器:
@model MyViewModel @Html.EditorFor(x => x.CRN)
这将产生我:
<input id="CRN" name="CRN" type="hidden" value="foo bar" />
在结果HTML中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。