我可以用
@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中。