Динамически добавлять входные атрибуты HTML5 из ​​модели - PullRequest
1 голос
/ 07 ноября 2011

Я пытаюсь заполнить новые значения входных атрибутов HTML5 в частичном представлении Razor. Моя модель выглядит так:

public class Answer
{
    public int AnswerId { get; set; }
    public string AnswerText { get; set; }
    public int? Columns { get; set; }
    public int? Maximum { get; set; }
    public string Placeholder { get; set; }
}

Мой частичный вид выглядит так:

@model Answer
@{Layout = null;}

@Html.TextBoxFor(x => x.AnswerText, new { @class="textbox", cols="@Model.Columns", max="@Model.Maximum", placeholder="@Model.Placeholder" })

Вероятно, неудивительно, что это генерирует HTML, который выглядит следующим образом (я пропустил некоторые несущественные атрибуты):

<input type="text" class="textbox" cols="@Model.Columns", max="@Model.Maximum", placeholder="@Model.Placeholder">

В то время как то, что я ищу, это html, который выглядит следующим образом, но с любым значением, которое можно найти в модели:

 <input type="text" class="textbox" cols="50", max="30", placeholder="Answer here">

Я уверен, что у меня момент Гомера Симпсона, но я просто не могу заставить его работать.

1 Ответ

1 голос
/ 07 ноября 2011

Уберите кавычки и используйте GetValueOrDefault в пустых полях:

@Html.TextBoxFor(x => x.AnswerText, new { @class="textbox", cols=Model.Columns.GetValueOrDefault(), max=Model.Maximum.GetValueOrDefault(), placeholder=Model.Placeholder })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...