gpt4 book ai didi

c# - ASP.NET MVC3 如何直接从 Controller 引用 View

转载 作者:太空狗 更新时间:2023-10-29 21:19:43 25 4
gpt4 key购买 nike

在我的 Controller 中,我想指定一个不同于默认的 View 。像这样:

public ActionResult EditSurvey(Int32 id)
{

Survey survey = _entities.Surveys.Single(s => s.Id == id);

return View("Survey",survey);
}

但我不想将 View 指定为字符串(“Survey”),而是直接引用它,因此如果我决定稍后更改 View 的名称,我不必手动更改此字符串。

所以我正在寻找这样的东西:

public ActionResult EditSurvey(Int32 id)
{

Survey survey = _entities.Surveys.Single(s => s.Id == id);

return View(Views.Admin.Survey,survey);
}

最佳答案

问得好,没有内置支持,因为 View() 方法需要一个字符串,但是有一个名为 T4MVC 的 Nifty 工具,由 David Ebbo 创建,它就是这样做的。

codeplex 上的文档有手动安装过程,我建议直接从 VS2010 使用 NuGet 包管理器获取它。

它非常简单,整个就是您可以添加到项目中的文件。 (T4MVC.ttT4MVC.settings.t4),每次更改代码时,(1) 右键单击​​ T4MVC.tt 和 < strong>(2) 单击“运行自定义工具”

它所做的是为您的所有 Controller 和 View 生成一个包含子类、成员和属性的类。它甚至可以为您的所有内容创建强类型,例如图像、css、js 等。(我认为这太棒了)

例子:
这个

@Html.RenderPartial("DinnerForm");

会是:

@Html.RenderPartial(MVC.Dinners.Views.DinnerForm);

这个:

@Html.ActionLink("Delete Dinner", "Delete", "Dinners", new { id = Model.DinnerID }, null)

会是这样吗:

@Html.ActionLink("Delete Dinner", MVC.Dinners.Delete(Model.DinnerID))

这个:

<img src="/Content/nerd.jpg" />

应该是这样的:

<img src="@Links.Content.nerd_jpg" />

每次更改 View 、 Controller 时,您都必须右键单击 tt 文件和“运行自定义工具”,但是,如果您想自动执行此操作,Check out Chirpy这样做等等。

(注意 T4MVC 在文档中有 aspx/mvc2 示例,但在 MVC3 上工作正常,因为我在生产中使用 MVC3/Razor 应用程序)

另见 SO 上的 T4MVC tag

关于c# - ASP.NET MVC3 如何直接从 Controller 引用 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5105059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com