簡體   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