2013-05-18 21 views
3

我有一個窗體和文本框組成的視圖。 如何在每個框中爲字符串和整型值設置默認值?如何設置默認值HTML.TextBoxFor()

我想要頁面加載每個框的值,所以我不需要輸入值。

我無法改變模型中的任何東西。

@model MyDb.Production.ProductionMaterial 

@{ 
    ViewBag.Title = "CreateMaterial"; 
} 


@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 
    <fieldset> 
    <legend>ProductionOrderMaterial</legend> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.Position) 
    </div> 
    <div class="editor-field">     //something like 
     @Html.TextBoxFor(model => model.Position, Or 5) 
     @Html.ValidationMessageFor(model => model.Position) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.ArticleId) 
    </div> 
    <div class="editor-field">     //something like 
     @Html.TextBoxFor(model => model.ArticleId. Or "") 
     @Html.ValidationMessageFor(model => model.ArticleId) 
    </div> 


} 

回答

8

在你的行動創建模型的實例,分配一些值模型的屬性,並傳遞到View方法。

在你的行動有:

ProductionMaterial model = new ProductionMaterial(); 
model.Position = 5; 
return this.View(model); 

這將模型傳遞給視圖和TextBoxFor(model => model.Position)將顯示5

+0

您的意思是說,我把VAL放在viewbag中,並將它們發送到 –

+0

您可以忽略查看包。 TextBoxFor參考model.Position,然後引用在「ModelMaterial」模型頂部定義的模型。屬性Position將用於填充TextBoxFor。 (我已經更新了我的答案) – MotoSV

+0

我不完全明白你,我應該在我的行動中寫什麼? –

5

我看你已經有了答案,但我會告訴你如何做到這一點的另一種方式:

在控制器

public ActionResult Index() 
      { 
       //here you must set VALUE what u want, 
       //for example I set current date 
       Viewbag.ExactlyWhatYouNeed = DateTime.Now 


       return View(); 
      } 

在查看

@Html.TextBoxFor(model => model.CurrentDate, new { @Value = ViewBag.ExactlyWhatYouNeed}) 

當你加載你的視圖時,你會得到默認值的字段(在我們的例子中是當前日期)

及其對MVC 4

希望它的工作將是另一個人有用的信息。