MVCでC#を書くのはこれが初めてです。行の値を cookie に追加して行数を生成したいのですが、その方法がわかりません。
より良い解決策があれば、よろしくお願いします。:)
まず、クッキーを作成します
if (Request.Cookies["UserSettings"] != null)
{
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie["Row"] = "5";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);
}
次に、Cookie を読み取り、コントローラーで Cookie から行を読み取り、「Viewbag.RowCookie」を介して送信して表示します
if (Request.Cookies["UserSettings"] != null)
{
string userSettings;
if (Request.Cookies["UserSettings"]["Row"] != null)
{
userSettings = Request.Cookies["UserSettings"]["Row"];
ViewBag.RowCookie = userSettings;
}
}
return View();
最後に、ビューで、ページをクリックするとエラーが表示されます。(別のページで行の値が問題ないことを確認したことに注意してください。)
@{int row = 3 ;
row = (int)ViewBag.RowCookie; } // the problem is this line
@for (int i = 0; i < row ; i++)
{
<tr>
<td>
<p>
@Html.Label("Name")
@Html.EditorFor(model => model.Name[i])</p>
</td>
<td>
<p>
@Html.Label("Prob" + (i+1))
@Html.EditorFor(model => model.Prop[i])</p>
</td>
<td>
<p>
@Html.Label("Forecast" + (i+1))
@Html.EditorFor(model => model.Forecast[i])</p>
</td>
<td> <p>
@Html.DisplayFor(model => model.AxB[i])
</p>
</td>
<td> <p>
@Html.DisplayFor(model => model.PowAxB[i])
</p>
</td>
</tr>
助けてくれてありがとう。