Asp.NET MVC强类型控制器

时间:2010-02-25 13:54:46

标签: asp.net-mvc mvccontrib redirecttoaction

我看到了这样的代码:

return View(x=>x.List());

而不是

return View("List");

我需要做什么?

我正在使用Asp.net MVC 2 RC 2

编辑我不是指强类型视图

下一个例子

return this.RedirectToAction(c => c.Speaker());

3 个答案:

答案 0 :(得分:4)

Strongly Typed RedirectToActionMvcContrib项目提供。

return RedirectToAction(c => c.Speaker());

return RedirectToAction<OtherController>(c => c.Speaker());

答案 1 :(得分:1)

这不是控制器的强类型...它是视图。

要获得强类型视图,您可以使用VS MVC工具中的提示,右键单击某个操作并选择“创建强类型视图”,然后选择适当的业务对象作为您的模型或者您可以通过将页面指令的Inherits属性更改为System.Web.Mvc.ViewPage来直接更改页面,其中SomeModel是实现“List”属性的模型,并且是将绑定到页面的模型。

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SomeModel>" %>

另外,我相信您正在考虑的是View上的用法:

<%= Html.LabelFor(m -> m.SomeValue) %>

同样,我不相信你正在考虑一个强类型控制器,我很确定你所看到的是一个强类型视图。

如果你浏览NerdDinner tutorial,你会一次又一次地看到这种事。

答案 2 :(得分:1)

我不确定从调用View方法返回一个不同的控制器操作作为参数时你会期望什么。正如您所指出的,RedirectToAction具有此行为以及一些Html辅助方法,例如:

<%= Html.ActionLink<myController>(x => x.Index(), "My Action") %>