Я работаю над системой управления инцидентами с помощью компьютера.Представить и разместить набор кнопок в ASP.NET MVC 3
В настоящее время Review
вида на инцидент содержит несколько кнопок манипуляции инцидента, которые «оказанных» на взгляд с помощью следующей логики:
модели для представления содержит несколько методов, которые могут сказать, если какое-то действие разрешено быть в настоящее время осуществляется на этот инцидент
A part ViewModel to which the Review view is bound:
...
public bool CanContactUser()
{
return _manager.CanContactUser(Incident, User);
}
public bool CanComment()
{
return _manager.CanSetComment(Incident);
}
...
в представлении, в зависимости от результата этих методов, фактическая кнопка для Parti или не отображается:
...
@if (Model.CanContactUser())
{
@Html.MakePopupForm("ContactUser", new[] { "id" }, title: "Register user contact", refreshOnSuccess: true, okText: "Save", cancelText: "Cancel", resizable: false)
}
@if (Model.CanComment())
{
@Html.MakePopupForm("Comment", new[] { "id" }, title: "Comment", refreshOnSuccess: true, okText: "Save", cancelText: "Cancel", resizable: false)
}
...
Я чувствую, что это плохая практика. Несмотря на то, что он работает, я готов иметь набор доступных кнопок в памяти (в коде C#), я думаю, в экземпляре класса ViewModel и привязать представление для рендеринга этой коллекции.
Как это можно достичь? Привязка вида к коллекции кнопок в частности. Я могу создать абстрактную коллекцию List<AvailableButton> buttonsToRenderAsHtml
... Но как мне связать Razor, чтобы отображать ее контролируемым образом?
вы можете проверить, может ли эта форма отобразиться в вашем помощнике. Просто отправьте значение перечисления и проверьте, что представление может отобразить ваш частичный вид. – Yorgo
. В моем частичном представлении должно быть что-то, давайте узнаем, как отобразить List. Вопрос в том, что? Это должно быть довольно просто из того, что я могу себе представить. –