Это работает для меня:
@section SomeSection {
@if (!Model.ReadOnly)
{
}
}
По существу переворачивается там, где находится условное. По сути, это приводит к пустому разделу, если Model.ReadOnly
верно.
Обновление:
Итак, как насчет того, чтобы переместить этот раздел в PartialView
и сделать что-то вроде:
@Html.Partial("MyAction")
в вашем View, а затем позволить MyAction
вернуть вам соответствующий PartialView
на основе значения ReadOnly? Нечто подобное:
public PartialViewResult MyAction()
{
...
// determine readonly status - could have passed this to the action I suppose
if (ReadOnly)
{
return PartialView("TheOneThatDefinesTheSection");
}
else
{
return PartialView("TheOneThatDoesNotDefineTheSection");
}
}
Похоже, что это будет работать просто отлично.
Нет, я не думаю, что вы можете делать это программно во время выполнения. Что вы можете сделать, конечно, если предоставить две отдельные конечные точки из вашей службы - одна возвращает XML, другая возвращает JSON, а затем программно выбирать, какую из них вызывать из вашего клиентского приложения.
Marc
Обновление: как правильно указывает Стив Микелотти, это автоматическое переключение между JSON и XML теперь может быть достигнуто в WCF 4.0. WCF 4.0 имеет улучшенную поддержку REST, которая также включает функцию выбора сообщения формата на основе принимаемых заголовков HTTP.
Дополнительные сведения о новых функциях WCF 4.0 см .: Введение разработчика в WCF 4.0