wie bekomme ich Daten von cookie anzeigen, C# in mvc3 mit Viewbag
Dies ist das erste mal für das schreiben von C# in MVC. Füge ich die Zeile mit dem Wert für cookie und möchte es genrate die Anzahl der Zeilen, aber ich weiß nicht, wie es zu tun.
Wenn Euch bessere Lösungen, ich werde dankbar sein. 🙂
Erstellen Sie zunächst cookie
if (Request.Cookies["UserSettings"] != null)
{
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie["Row"] = "5";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);
}
Zweiten, Lesen, Cookie, Controller Zeilen Lesen von cookie und senden Sie dann durch "Viewbag.RowCookie" anzeigen
if (Request.Cookies["UserSettings"] != null)
{
string userSettings;
if (Request.Cookies["UserSettings"]["Row"] != null)
{
userSettings = Request.Cookies["UserSettings"]["Row"];
ViewBag.RowCookie = userSettings;
}
}
return View();
Schließlich in Sicht, Dann Fehler angezeigt, wenn Sie auf die Seite. (Hinweis: ich habe in der Zeile mit dem Wert in Ordnung ist in der anderen Seite.)
@{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>
Danke Euch allen für die Hilfe.
- was ist der Fehler???
- Es kann HTML erzeugen, weil der viewbag, ich möchte die Daten zu viewbag in "int" - Typ.
- Sie können die Verwendung von @ - Modell IEnumerable<yourModel> dann Schleife durch foreach zu verwenden
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kannst du nicht casten, ein string in einen integer-mithilfe
(int) myString
Bei der Einstellung der ViewBag Sie tun konnte,
dann ist es nur
int row = ViewBag.RowCookie;
im Blick.Sagte, ohne zu wissen, was du tust, ich finde es schwer vorstellbar, ein Umstand, wo Sie wollen, um zu verwenden ein cookie, und ViewBag wie diese. Wenn Sie nicht möchten, dass die Verwendung der Daten in einem array an einem bestimmten index, als Grenze es an diesem index, wenn Sie erstellen Sie Ihre viewmodel. Dann deine for-Schleife ist nur
oder besser, refactoring all Ihren Eigenschaften in eine IEnumerable-Auflistung
in der Ansicht beschränken, es mit
On a side note für:
sind Sie sicher, dass Sie nicht bedeuten
Request.Cookies["UserSettings"] == null
?