2016-03-23 39 views
0

Warum @Html.LabelFor(model => model.data, ((string)ViewBag.id)) Rückgabe in public ActionResult Index(Data item) null statt 100. Wie behebe ich das?ASP.NET MVC ViewBag Rückgabe null

public ActionResult Index() 
    { 
     ViewBag.id = "100"; 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Index(Data item) 
    { 
     return View(); 
    } 

Index.cshtml

@model TestForm.Models.Data 
@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

@using(@Html.BeginForm()) 
{ 
    @Html.LabelFor(model => model.data, ((string)ViewBag.id)) 
    <input type="submit"/> 
} 
+3

'LabelFor()' generiert keine Formularsteuerung. Sehr unklar, was Sie zu tun versuchen, aber Sie müssen den Wert von 'model.data = 100;' im Controller setzen, bevor Sie das Modell an die Ansicht übergeben, und dann in der Ansicht '@ Html.TextBoxFor (m = > m.data) '(und entferne deinen' ViewBag') –

+0

@StephenMuecke Ich denke, es reicht für die Antwort. –

+0

Sie tunned, um den String zu entpacken, da viewbag bereits string ist @ Html.LabelFor (model => model.data, ViewBag.id) –

Antwort

0

Warum @ Html.LabelFor (Modell => model.data, ((string) ViewBag.id)) Rückkehr in public Action Index (Datenelement) null statt 100

Sie werden nie den Wert in dieser Methode einstellen. Wenn Sie möchten, dass es nach dieser Methode im Label angezeigt wird, müssen Sie der Methode ViewBag.id = "100"; hinzufügen.

Wenn Sie versuchen, das als Ihren Standardwert festzulegen, erstellen Sie Ihr Formular wirklich falsch. Es sollte ein

sein Dies würde dann wieder in Ihrem Data item Objekt gebucht und eingestellt werden. Beachten Sie, dass Sie den [Feldname] ändern müssen

Verwandte Themen