簡體   English   中英

回發后如何獲取HTML屬性值?

[英]How to get HTML attribute values after postback?

這是我的看法:

@using (Html.BeginForm())
{
    foreach (Mvc3Intranet.Models.Dispatcher item in ViewBag.DispatcherList)
    {
    <div>
        <input type="text" value="@(item.Fullname)" name="txtName@(item.Id)" data-tmp="@(item.Tmp)" /></div>
    }
    <input type="submit" name="test" value="Save" />
}

這是HTML:

<form action="/" method="post">    
    <div>
        <input type="text" value="Ray1" name="txtName1" data-tmp="AAA" /></div>
    <div>
        <input type="text" value="Ray2" name="txtName2" data-tmp="BBB" /></div>
    <div>
        <input type="text" value="Ray3" name="txtName3" data-tmp="CCC" /></div>
    <div>
        <input type="text" value="Ray4" name="txtName4" data-tmp="DDD" /></div>
    <input type="submit" name="test" value="Save" />
</form>

表單回發后,如何訪問控制器中的data-tmp值?

[HttpPost]
public ActionResult Index(string test)
{
}

Request["txtName1"]返回文本框的valid ,但不返回data-tmp屬性值。 由於可以在asp.net Web表單中完成此操作,因此我也假設在asp.net mvc中也可以這樣做嗎?

屬性不包含在Request.Forms字典中。 您將必須將其他數據作為隱藏字段發布到查詢字符串中。

或者,您可以將數據臨時存儲在數組或字典中,然后將其保存在會話變量中。

Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("txtName1", "AAA");
dict.Add("txtName2", "BBB");
//or put the above lines in your foreach loop
this.Session["data-tmp"] = dict;

...然后使用以下行從會話var中檢索Dictionary:

Dictionary<string, string> recoverDict = (Dictionary<string, string>)this.Session["data-tmp"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM