我是MVC的新手(继承了剃刀MVC网站)。
我正在尝试使用“关于我们”页面来处理选项卡样式 - 基本上是按钮,以轻弹内容。
我添加了以下构造函数和属性...
public class AboutModel
{
public AboutModel(string selectedAboutTab)
{
SelectedAboutTab = selectedAboutTab;
}
private string _selectedAboutTab;
public string SelectedAboutTab
{
get { return _selectedAboutTab ?? "about"; }
set
{
_selectedAboutTab = value;
}
}
然后希望像这样使用HTML来更改标签...
<a href="/About?selectedAboutTab=directors">directors</a>
但它似乎没有向构造函数传递任何内容。
我认为问题出在家庭控制器上......这是在主页上 - 它首先启动了AboutModel ......但是当我从'主页'导航到“关于我们”它的工作将完成!但是,每当我点击“关于我们”页面中的“关于”标签页时,它实际上会创建一个新模型。
这是家庭控制器上的一些代码。
public virtual ActionResult About()
{
ViewBag.CurrentPage = MenuPages.About;
return View(new AboutModel("about"));
}
很抱歉我明显缺乏MVC知识!但有人可以告诉我能够填充SelectedAboutTab属性的最简单方法吗?
由于
答案 0 :(得分:1)
您已经回答了自己的问题,但作为一般提示,请考虑使用网址助手而不是硬编码<a href />
:
@Html.ActionLink( "directors", "About", new { selectedAboutTab = "directors" } )
视图引擎将动态构建您的链接。
答案 1 :(得分:0)
我只需要将selectedAboutTab添加到Home Controller ...
public virtual ActionResult About(string selectedAboutTab)
{
ViewBag.CurrentPage = MenuPages.About;
return View(new AboutModel(selectedAboutTab));
}