をビューにバインドしようとしましOrderedDictionary
たが、post メソッドが呼び出されると、ディクショナリは常に空です。
これが私のコードです:
[HttpGet]
public ViewResult Edit(string username, string password)
{
Xml test = new Xml(@"c:\Users\pc\Desktop\xml - Copy.xml");
XmlNode userNode = test.GetUserNodeByUsernameAndPassword(username, password);
User user = new User();
user.BindData(userNode);
return View(user.user);
}
[HttpPost]
public ViewResult Edit(OrderedDictionary attributes)
{
return View(attributes);
}
そして、ここにビューがあります:
@using (Html.BeginForm("Edit", "Users")) {
@Html.ValidationSummary(true)
<fieldset>
<legend>User</legend>
<p>
<input type="submit" value="Save" />
</p>
@{int counter = 0;}
@{string name = "";}
@foreach (DictionaryEntry attribute in Model)
{
{ name = "[" + counter + "].key"; }
<input type="hidden" name=@name value=@attribute.Key />
@attribute.Key @Html.TextBoxFor(m => attribute.Value)
counter++;
<br />
}
</fieldset>
}
結果の Html は次のようになります。
<input type="hidden" value="Username" name="[0].key">
Username
<input id="attribute_Value" type="text" value="Anamana" name="attribute.Value">
そのため、のコンテンツはOrderedDictionary
ビューに問題なく表示されますが、ポストバックを作成すると、バインディングが機能せず、ディレクトリが空のままになります。