Простой вопрос Razor относительно помощника Html.Editor (MVC3) - PullRequest
0 голосов
/ 26 июля 2011

По сути, у меня есть таблица с несколькими редакторами, такими как:

<table><br> <tr><br> <td>@Html.EditorFor(x => x.Random1)</td><br> <td>@Html.EditorFor(x => x.Random2)</td><br> </tr><br> <tr><br> <td colspan="2">@Html.EditorFor(x=> x.Random3)</td><br> </tr><br> </table>

Теперь моя проблема, как вы, наверное, уже поняли из colspan = "2",Я хочу, чтобы мое третье текстовое поле растянулось на две колонки.В обычном HTML это естественно просто добавить атрибут width.Есть ли аннотация данных, например DataType.MultilineText, которая может изменить ширину редакторов?Есть еще идеи?

ОБНОВЛЕНИЕ: если я заменю его на TextBoxFor вместо EditorFor, я могу добавить @Html.TextBoxFor(x => x.Random, new { style = "width: 500px;" }).
Единственная проблема в том, что у меня есть другое текстовое поле (скажем, random4), и оно каким-то образом переопределяет мой DataAnnotation MultilineTextи делает его простым текстовым полем 500px.Думаю, мне придется копаться в CSS: (

Ответы [ 3 ]

1 голос
/ 26 июля 2011

Вы можете найти некоторые ответы на этот вопрос полезными.

Хорошая вещь о шаблонах в том, что если вам не нравится, как они работают, вы можете просто вставить свою собственную реализацию.

Вы также можете попробовать использовать CSS, чтобы указать ширину элемента управления на основе его идентификатора.

0 голосов
/ 26 июля 2011

Самое простое решение - просто стилизовать элемент управления в CSS. Для произвольного текстового поля random3 input[type="text"]{width:1px} и для многострочного текстового random4 просто используйте textarea{width:1px}

0 голосов
/ 26 июля 2011

В свойстве модели - в этом случае Random3 дает аннотацию

public class ViewModelName
{
    [DataType(DataType.MultilineText)]
    public string Random3 { get; set; }
}

тогда, когда вы сможете Html.EditorFor (x => x.Random3), он будет знать, что он должен быть многострочным

...