ASP.NET MVC 3: шаблоны редактора для полей - PullRequest
2 голосов
/ 25 ноября 2011
<tr>
   <td>
        @Html.Label("Notes") </td><td> @Html.TextArea("Notes")
   </td></tr>
   <tr><td>
        @Html.Label("Action Date")</td><td> @Html.TextBoxFor(m => m.Due, new { @class = "dateTimePicker" })</td><td>
        @Html.ValidationMessageFor(m => m.Due)
   </td></tr>

В любом случае я могу создать шаблон, который будет принимать любые @HTML.Label, @Html.Textbox и т. Д., А также их for аналоги и правильно помещать их в таблицу? без меня все мои взгляды сводятся к разметке таблицы.

Ответы [ 2 ]

2 голосов
/ 25 ноября 2011

Вы, безусловно, можете.Я собрал быстрый пример, основанный на вашем примере кода:

Для базовой модели:

public class Foo
{
    public string Notes { get; set; }

    [Required]
    [DisplayName("Action Date")]
    public DateTime Due { get; set; }
}

И этот простой контроллер:

var model = new Foo { Notes = "Some Note String", Due = System.DateTime.Now };
return View(model);

Вы можете позвонитьшаблон редактора с вашей точки зрения:

 @Html.Editor("Editor", "Foo", Model)

Данный шаблон:

@model StackExamples.Models.Foo

<table>
    <tr>
        <td>
            @Html.LabelFor(x => x.Notes)
        </td>
        <td>
            @Html.TextAreaFor(x=>x.Notes)
        </td>
    </tr>
    <tr>
        <td>
            @Html.LabelFor(x=>x.Due)
        </td>
        <td>
            @Html.TextBoxFor(m => m.Due, new { @class = "dateTimePicker" })
        </td>
        <td>
            @Html.ValidationMessageFor(m => m.Due)
        </td>
    </tr>
</table>

И ваш вывод будет отображаться по вашему желанию без дополнительной разметки таблицы в ваших представлениях.

2 голосов
/ 25 ноября 2011
...