ASP.Net MVC 2 - необходимо добавить свойство по умолчанию для сильно типизированного помощника Html.Textbox в Asp.Net MVC 2 - PullRequest
6 голосов
/ 23 апреля 2010

У меня проблема с чем-то, что, я уверен, очень просто. Я использую Asp.Net MVC и решил начать использовать Asp.Net MVC 2. Что-то изменилось, и теперь мне нужна небольшая помощь. Сильно типизированные помощники теперь пишутся так:

<%= Html.TextBoxFor(model => model.State) %>

Мне нужно добавить значение по умолчанию в текстовое поле. В предыдущей версии Asp.Net MVC было легко назначить значение по умолчанию. Я думал, что следующие действия будут работать в MVC 2-

<%= Html.TextBoxFor(model => model.CountyId, new{ value = 840 })%>

Это, однако, не работает для меня в Asp.Net MVC 2. Значение для текстового поля все еще пустое. Я хочу убедиться, что это не какая-то случайная ошибка, которая у меня возникает. Кто-нибудь еще сталкивался с такой же проблемой? Я искал и искал, чтобы найти больше информации о свойстве по умолчанию для помощников HTML в MVC 2, но я ничего не могу найти. Кто-нибудь знает, как правильно назначить значение по умолчанию для текстового поля в Asp.Net MVC 2?

Ответы [ 4 ]

9 голосов
/ 10 июня 2010

На самом деле, в случае, если у кого-то еще есть эта проблема, работает Значение вместо значение . Я думаю, проблема в том, что значение с общим v является ключевым словом c #.

5 голосов
/ 23 апреля 2010

Если это постоянное значение, вы можете вместо этого назначить значение по умолчанию для свойства в вашей модели (вы можете установить его в конструкторе или в вспомогательном поле, если вы используете свойства «старого стиля»). Что-то вроде:

public class Model
{
   public int CountryId { get; set; }

   public Model()
   {
      this.CountryId = 840;
   }
}

Или, если он варьируется в зависимости от запроса, установите его в модели представления, которую вы передаете своему представлению из контроллера.

3 голосов
/ 23 апреля 2010

OK. Я нашел ответ на свою проблему - вроде. Новый Html.TextBoxFor в MVC 2 не позволяет устанавливать свойство value с использованием объекта htmlattributes, даже несмотря на то, что он сохраняет возможность устанавливать все другие свойства, используя этот синтаксис-

<%= Html.TextBoxFor(model => model.CountryName, new { maxlength = "40" })%>

Таким образом, чтобы обойти эту проблему, если вам нужно установить значение по умолчанию для поля текстового поля, вам нужно использовать старый синтаксис -

<%= Html.TextBox("CountryName", "Enter your country name")%>

Это добавит свойство значения по умолчанию соответствующим образом в HTML. Новая спецификация TextBoxFor не может использоваться в этом случае, но значение все равно будет возвращено обратно в контроллер так же, как лямбда-выражение. ВСЕ другие свойства текстового поля могут быть установлены с помощью textboxfor (maxlength и т. Д.) С использованием нового синтаксиса {whatProperty = value} - только не свойство value.

1 голос
/ 26 сентября 2012
@Html.TextBoxFor(model => model.CountyId, new{ @value = 840 })

работает в синтаксисе бритвы asp.net mvc3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...