繁体   English   中英

在ASP.NET MVC 4 Razor中,如何获取@ Html.Label的值(文本)?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM