我试图以这种方式在ASP.NET MVC 2 RC2中使用Html.RenderAction:
在菜单控制器中:
[ChildActionOnly]
public ActionResult ContentPageMenus()
{
var menus = _contentPageMenuRepository.GetAll().WithCulture(CurrentCulture);
return PartialView(menus);
}
Run Code Online (Sandbox Code Playgroud)
在我的索引视图中(对于Home控制器的Index操作):
<% Html.RenderAction("ContentPageMenus", "ContentPageMenu");%>
Run Code Online (Sandbox Code Playgroud)
但我总是收到此错误消息:路由表中的路由与提供的值不匹配.
我一直在使用这种方法将公共数据传递给site.master.但是,这需要特定的ViewData转换,我不喜欢在任何地方使用字符串标识符.这是最好的方式还是另外一种方式?
http://www.asp.net/learn/MVC/tutorial-13-cs.aspx
谢谢
所以,我有一个页脚,它将出现在我的Web应用程序的每个页面上
我需要它来渲染动态数据......这意味着每个控制器动作都需要返回包含这些数据的viewData ..以及特定于动作的数据
你们怎么实现这个?或许基本控制器的构造函数?
如何将模型传递给MVC 3 Razor"masterpage"?
Razor视图引擎与aspx视图引擎不同.
我在页面首页的顶部有一个引导导航栏,其内部是文本输入。我希望它隐藏起来,直到执行搜索并且用户在results控制器中看到结果为止。
这是在我的引导导航栏中。
<input type="text" class="form-control" placeholder="Search">
Run Code Online (Sandbox Code Playgroud)
例如:
Hidden: www.example.com/home/index
Visible: www.example.com/results
Run Code Online (Sandbox Code Playgroud) 我试图让我的强类型母版页在我的ASP MVC 2.0应用程序中工作.我在这两个帖子的帮助下走得很远:
问题是,我不知道如何使ViewDataFactory代码工作,这是我的代码:
BaseController.cs
public class BaseController : Controller
{
private IPageRepository _repPage;
public BaseController(IPageRepository repPage)
{
_repPage = repPage;
}
protected T CreateViewData<T>() where T : MasterViewData, new()
{
IViewDataFactory factory = new ViewDataFactory();
IEnumerable<Page> pages = _repPage.GetAllPages();
return factory.Create<T>(pages);
}
}
Run Code Online (Sandbox Code Playgroud)
HomeController.cs
public class HomeController : BaseController
{
public ActionResult Index()
{
HomeViewData viewData = CreateViewData<HomeViewData>();
viewData.Name = "Test";
return View("Index", viewData);
}
public ActionResult About()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
ViewDataFactory.cs
public …Run Code Online (Sandbox Code Playgroud)