次のアクションを使用して、コンテンツ管理システムの管理者で編集したナビゲーション バー アイテムを保存しています。
[HttpPost]
public ActionResult aSaveNavs()
{
aLoggedIn();
NavItemsDataContext navDB = new NavItemsDataContext();
Nav n = navDB.Navs.Select(row => row.ID == Convert.ToInt32(Request.Form["ID"]));
n.NavName = Request.Form["NavName"];
n.NavURL = Request.Form["NavURL"];
n.NavEnabled = (Request.Form["NavEnabled"] == "true" ? true : false);
navDB.SubmitChanges();
return Redirect("/Admin/aHome");
}
次のビューを使用しています。
@{
List<Nav> navList = HtmlHelpers.GetNavList();
}
@foreach (Nav item in navList)
{
<tr>
<td style="width: 150px; text-align: center;">
@item.NavName
</td>
<td style="width: 150px; text-align: center;">
<input id="NavName" name="NavName" type="text" value="@item.NavName" />
</td>
<td style="width: 150px; text-align: center;">
<input id="NavURL" name="NavURL" type="text" value="@item.NavURL" />
</td>
<td>
<input id="ID" name="ID" type="text" readonly="readonly" value="@item.ID" />
</td>
</tr>
}
明らかに、ビューには他にもいくつかのビットがありますが、これが問題のセクションです。
変更を保存しようとすると、「System.FormatException: 入力文字列が正しい形式ではありませんでした」というメッセージが表示されます。次の行が強調表示されます。
Nav n = navDB.Navs.FirstOrDefault(row => row.ID == Convert.ToInt32(Request.Form["ID"]));
これについてご協力いただきありがとうございます。