Вы можете сделать две вещи, чтобы помочь вам здесь.
Методы расширения
Первое - это написать метод расширения, который позволяет вам создать поле ввода сваши спецификации, например:
public static class Extensions
{
public static string EditOrDisplayFor(this HtmlHelper helper, Field field, bool readOnly)
{
StringBuilder builder = new StringBuilder();
if(readOnly)
{
builder.Append(field.Value);
}
else
{
builder.Append("<input type=\"text\" name=\"")
.Append(field.Name)
.Append("\" value=\"")
.Append(field.Value)
.Append("\" />");
}
return helper.Raw(builder.ToString());
}
}
, которые вы можете теперь использовать, как вы описали.
Частичное представление
Если эти формы в конечном итоге имеютобщие группы между ними, вы можете рассмотреть возможность размещения этих общих разделов в частичные представления, чтобы сократить избыточный код макета.