簡體   English   中英

TryUpdateModel無法與字典一起使用<Enum,string>

[英]TryUpdateModel not working with Dictionary<Enum,string>

假設這些類\\枚舉:

public enum Test
{
    MyTest1 = 0,
    MyTest2,
    MyTest3,
}

public class Model
{
    public Dictionary<Test, string> TestDictionary { get; set; }
    public Dictionary<string, string> StringDictionary { get; set; }
    public string Other { get; set; }

    public Model()
    {
        TestDictionary = new Dictionary<Test, string>();
        StringDictionary = new Dictionary<string, string>();
    }
}

這種形式:

<form action="/Home/Test" method="post">
    <input type="hidden" name="Model.TestDictionary[MyTest1]" value="myval" />
    <input type="hidden" name="Model.StringDictionary[mykey]" value="myval" />
    <input type="hidden" name="Model.StringDictionary[mykey2]" value="myval2" />
    <input type="hidden" name="Model.Other" value="works" />
    <button type="submit">Submit</button>
</form>

而這個動作:

public ActionResult Test(FormCollection formCollection)
{
    Model model = new Model();
    TryUpdateModel(model, "Model");
    return Redirect("Index");
}

Model.StringDictionary獲取的更新成功。
無法獲取Model.TestDictionary進行更新。

我嘗試了許多方法,例如將輸入名稱更改為Test.MyTest1但無法使其正常工作。

我要如何填充Model.TestDictionary輸入看起來像id?

我發現了一個可行的丑陋解決方法:

<input type="hidden" name="Model.TestDictionary[0].Key" value="MyTest1" />
<input type="hidden" name="Model.TestDictionary[0].Value" value="myval" />

無論如何,如果有人發現更好的東西,那就很高興看到。

暫無
暫無

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

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