Вы используете класс ViewModel
для передачи данных:
public class IndexViewModel
{
public string MainNav { get; set; }
public string SubNav { get; set; }
public IndexViewModel(string mainnav, string subnav)
{
this.MainNav = mainnav;
this.SubNav = subnav;
}
}
Ваш метод действия затем выходит
public ActionResult Index(string mainnav, string subnav)
{
return View(new IndexViewModel(mainnav, subnav));
}
Это означает, что ваше представление должно быть строго напечатано:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<YourNameSpace.IndexViewModel>" %>
По вашему мнению, вы выводите данные следующим образом:
myobj.mainnav = <%: Model.MainNav %>;
Альтернативным решением, если вы используете MVC3, было бы использование динамического ViewBag
:
public ActionResult Index(string mainnav, string subnav)
{
ViewBag.MainNav = mainnav;
ViewBag.SubNav = subnav;
return View();
}
, который будет доступен на странице следующим образом:
myobj.mainnav = <%: ViewBag.MainNav %>;
Однако, я бы порекомендовал вам прочитать ненавязчивый JavaScript и посмотреть, сможете ли вы улучшить свой дизайнчтобы избежать этой конкретной проблемы.