@Html.HiddenFor(model => model.CreatedBy, new { @value=currentInfo.UserID}) value始终是null@Html.TextBoxFor(model => model.CreatedBy, new { @value=currentInfo.UserID}) 这样子value就会有值
把value 的V改大写 就可以了@Html.HiddenFor(model => model.RenyuanID, new { @Value = @ViewData["renyuanID"] }
http://codego.net/334085/1. 你有一个视图模型,而不是ViewData的?强类型的辅助与结束For
并采取了lambda表达式不能与弱类型结构,如工作ViewData
。 个人而言,我不要‘的ViewData / ViewBag。我定义视图模型,并有我的控制器动作通过这些视图模型我的views。 例如,在你的情况我会定义一个视图模型:
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。 2. 请记住第二[email protected]只会设定值时,它无法找到路径或模式匹配的数据字段。达林是正确的 CodeGo.net,使用视图模型。 3. 我相信这是一个简单的解决方案。 您Html.Hidden
而不是Html.HiddenFor
。看:
@Html.Hidden("CRN", ViewData["crn"]);
这将创建一个INPUT
的标签type="hidden"
,与id="CRN"
和name="CRN"
,和里面的正确值value
属性。 希望它可以帮助! 4. 在MVC 4以下工作
@Html.HiddenFor(x => x.CRN, new { @Value = "1" });
你需要在@价值一资‘V‘ 这里是我的模型
public int CRN { get; set; }
这里是输出的是当你看到在浏览器
<input value="1" data-val="true" data-val-number="The field CRN must be a number." data-val-required="The CRN field is required." id="CRN" name="CRN" type="hidden" value="1"/>
这里是
[HttpPost]
public ActionResult MyMethod(MyViewModel viewModel)
{
int crn = viewModel.CRN;
}
时间: 2024-11-04 18:33:30