加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.NET MVC3如何直接从控制器引用视图

发布时间:2020-12-15 08:32:39 所属栏目:百科 来源:网络整理
导读:在我的控制器中,我想指定一个不同于默认值的视图. 像这样 : public ActionResult EditSurvey(Int32 id) { Survey survey = _entities.Surveys.Single(s = s.Id == id); return View("Survey",survey); } 但是我没有将视图指定为字符串(“Survey”),而是想直
在我的控制器中,我想指定一个不同于默认值的视图.
像这样 :
public ActionResult EditSurvey(Int32 id)
    {

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

        return View("Survey",survey);
    }

但是我没有将视图指定为字符串(“Survey”),而是想直接引用它,所以如果我决定稍后更改我的视图名称,则不必手动更改此字符串.

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

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.tt和T4MVC.settings.t4),每次更改代码时,(1)右键单击T4MVC.tt和(2)单击“运行自定义工具”.

它的作用是为所有控制器和视图生成一个带有子类,成员,属性的类.它甚至可以为您的所有内容创建强大的类型,例如图像,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" />

你必须右键单击tt文件和每次更改视图,控制器之前提到的“运行自定义工具”,但是,如果要自动执行此操作,Check out Chirpy可以执行此操作,甚至更多.

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

另见SO上的T4MVC tag.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读