2013-05-18 5 views
3

У меня есть представление, состоящее из формы и текстовых полей. Как установить значение по умолчанию в каждом поле для строк и значений int?Как установить значение по умолчанию 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

Вы имеете в виду, что я кладу валу в сумку и отправляю ее в –

+0

Вы можете игнорировать сумку для просмотра. Модель TextBoxFor reference.Position, которая затем ссылается на модель, определенную в верхней части «model ProductionMaterial». Свойство 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}) 

И когда вы загрузите View, вы получите поле со значением по умолчанию (текущая дата в нашем примере)

Его работа на MVC 4

надеюсь, что его будет полезным информация для других людей.

Смежные вопросы