Безопасное повторное использование шаблонов редактора для разных типов - PullRequest
0 голосов
/ 16 мая 2019

Предположим, у меня есть следующее частичное представление для Decimal, расположенного в "~/Views/Shared/EditorTemplates/Decimal.cshtml":

@model decimal?
@{
    var attrs = ViewData;

    if (ViewData["type"] == null)
    {
        attrs.Add("type", "number");
    }
}

@Html.TextBoxFor(m => m, attrs)

Я также хочу использовать этот шаблон для свойств типа Int32. Поэтому я создаю следующее в "~/Views/Shared/EditorTemplates/Int32.cshtml":

@model int?
@Html.Partial("~/Views/Shared/EditorTemplates/Decimal.cshtml", (decimal?)Model)

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

( Редактировать: добавлено явное приведение от int до decimal?.)

1 Ответ

0 голосов
/ 17 мая 2019

Вы можете определить EditorTemplate в целом. После определения для обоих типов данных. Например, вы можете использовать следующие примеры кода:

Определение EditorTemplate:

~/Views/Shared/EditorTemplates/Number.cshtml

Uassage of Helper в поле зрения:

@Html.EditorFor(model => model.SomeValue)

определение в классе ViewModel

[UIHint("Number")]
public int SomeValue { get; set; }

OR

[UIHint("Number")]
public decimal SomeValue { get; set; }
...