Как обновить частичное представление и сохранить правильные имена элементов [duplicate]

getActivity() является дочерним элементом контекста, поэтому он должен работать для вас

19
задан Michael Myers 7 July 2011 в 23:19
поделиться

2 ответа

Еще лучше, вы можете установить ViewData.TemplateInfo.HtmlFieldPrefix внутри действия контроллера,

public Actionresult MyAction()
{
   ...
   ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix";

   return PartialView("MyView", viewmodel);
}

В вашей модели просмотра нет необходимости в ViewBag или в качестве свойства.

23
ответ дан Thorsten Westheider 19 August 2018 в 02:44
поделиться

Вы можете передать эту информацию вместе с частью модели представления:

public ActionResult NewMonitorValidationRule()
{
    ValidationRule rule = new ValidationRule{Id = TempSurrogateKey.Next};
    // CODE TO SET PartialView field prefix
    rule.MyPrefix = "Rule[153]";
    return PartialView("ValidationRuleRow", rule);
}

и внутри частичного представления ValidationRuleRow.cshtml использовать это свойство модели представления, чтобы установить префикс:

@{
    if (!string.IsNullOrEmpty(Model.MyPrefix))
    {
        ViewData.TemplateInfo.HtmlFieldPrefix = Model.MyPrefix;
    }
}
18
ответ дан Darin Dimitrov 19 August 2018 в 02:44
поделиться
  • 1
    Хороший звонок. Я закончил использование ViewBag, а не добавил его в модель представления, но этого обходного пути достаточно. Благодарю. – Michael Nelson 7 July 2011 в 23:31
  • 2
    Спасибо, это работа! ;) – Renato Leite 13 November 2014 в 15:19
Другие вопросы по тегам:

Похожие вопросы: