[英]In ASP.NET MVC 4 Razor, how do you get the value (text) of @Html.Label?
很抱歉,我尝试搜索,但未收到与我的问题有关的任何信息。
我的观点:
<legend>COMFIRM</legend>
@using (Ajax.BeginForm("AdminDeleteResult", "Admin",
new AjaxOptions { UpdateTargetId = "div" }))
{
<div id="div"></div>
<h6>ARE YOU SURE WANT TO DELETE</h6>
<ol>
<li>
@Html.Label("User ID:")
@Html.Label("userid", Model.userid)
</li>
<li>
@Html.Label("Username:")
@Html.Label(Model.username)
</li>
</ol>
<button>DELETE</button>
}
</fieldset>
而我的控制器:
[HttpPost]
public ActionResult AdminDeleteResult(FormCollection form)
{
string userid = form["userid"].ToString(); //ERROR HERE
...
}
我尝试用@Html.TextBox("userid")
替换Label,它工作正常。 但是我想使用Label,因为我不希望人们改变它的价值。 谢谢您的帮助!
这不是使用input
Label
的目的。 form
的目的是收集数据,并将数据保存在表单元素中 。
如果您不希望人们更改值(可以讨论),则可以将input
readonly
,也可以将其隐藏。
由于您的视图使用模型 ,因此可以将Latda表达式与HtmlHelpers一起使用来创建表单。
@using (Ajax.BeginForm("AdminDeleteResult", "Admin",
new AjaxOptions { UpdateTargetId = "div" }))
{
<div id="div"></div>
<h6>ARE YOU SURE WANT TO DELETE</h6>
<ol>
<li>
@Html.Label(model => model.userid)
@Html.TextBoxFor(model => model.userid, new { @readonly="readonly" })
@* @Html.HiddenFor(model => model.userid) *@
</li>
<li>
@Html.Label(model => model.username)
@Html.TextBoxFor(model => model.username, new { @readonly="readonly" })
</li>
</ol>
<button>DELETE</button>
}
正如@ man-nemati所提到的,最好在您的操作中使用模型
[HttpPost]
public ActionResult AdminDeleteResult(UserModel user)
{
string userid =user.userid; // userid is storred in user
// ...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.