在ASP.. NET MVC 4 Razor,你如何获得@Html.Label的值(文本)
本文关键字:Label @Html 何获得 的值 文本 NET ASP MVC Razor | 更新日期: 2023-09-27 17:50:30
对不起,我已经试着搜索了,但是我没有收到任何与我的问题相关的信息。
我的观点:
<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>
和Controller:
[HttpPost]
public ActionResult AdminDeleteResult(FormCollection form)
{
string userid = form["userid"].ToString(); //ERROR HERE
...
}
我试着用@Html.TextBox("userid")
代替标签,它工作得很好。但是我想使用Label,因为我不想让人们改变它的值。谢谢你的帮助!
这不是Label
的目的,您必须使用input
。form
的目的是收集数据,数据保存在形式元素中。
如果你不想让人们改变这个值(这个可以讨论),你可以让input
readonly
或者你可以隐藏它。
因为你的视图使用模型你可以使用HtmlHelpers与lambda表达式来创建你的表单。
@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
// ...
}