将控制器参数传递给视图

发布于 2024-11-19 23:06:09 字数 685 浏览 2 评论 0原文

将控制器参数传递给视图的最佳方法是什么?该参数与任何模型无关,因此无法进行强类型视图。

控制器:

        public ActionResult DisplayParam(string id, string name)
    {
       return View();
    }

查看:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

<%@ Import NameSpace="System.IO" %> <%@导入NameSpace=“系统”%> <%@ Import NameSpace="System.Data" %> <%@ 导入 NameSpace="System.Web" %> <%@ 导入 NameSpace="System.Text" %> <%@ 导入命名空间="MY.Controllers" %>

控制器参数

<div>
Controller Parameter id: @id
Controller Parameter name: @name
</div>

What is the best way to passing a controller parameter to a view? The parameter is not related to any model, so cant do strongly typed view.

Controller:

        public ActionResult DisplayParam(string id, string name)
    {
       return View();
    }

View:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

<%@ Import NameSpace="System.IO" %>
<%@ Import NameSpace="System" %>
<%@ Import NameSpace="System.Data" %>
<%@ Import NameSpace="System.Web" %>
<%@ Import NameSpace="System.Text" %>
<%@ Import Namespace="MY.Controllers" %>

Controller Parameter

<div>
Controller Parameter id: @id
Controller Parameter name: @name
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

提笔落墨 2024-11-26 23:06:09

最好的方法是使用视图模型:

public class MyViewModel
{
    public string Id { get; set; }
    public string Name { get; set; }
}

然后让控制器操作填充此视图模型并将其传递给视图,就像这样:

public ActionResult DisplayParam(string id, string name)
{
    var model = new MyViewModel
    {
        Id = id,
        Name = name
    };
    return View(name);
}

最后,您将视图强类型化到此视图模型并使用信息来显示它:

<%@ Page 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewPage<AppName.Models.MyViewModel>" 
%>
<div>
    Controller Parameter id: <%= Html.DisplayFor(x => x.Id) %>
    Controller Parameter name: <%= Html.DisplayFor(x => x.Name) %>
</div>

或者如果您使用的是 Razor 视图引擎:

@model AppName.Models.MyViewModel
<div>
    Controller Parameter id: @Html.DisplayFor(x => x.Id)
    Controller Parameter name: @Html.DisplayFor(x => x.Name)
</div>

The best way is to use a view model:

public class MyViewModel
{
    public string Id { get; set; }
    public string Name { get; set; }
}

and then have your controller action populate this view model and pass it to the view, just like this:

public ActionResult DisplayParam(string id, string name)
{
    var model = new MyViewModel
    {
        Id = id,
        Name = name
    };
    return View(name);
}

and finally you would have your view strongly typed to this view model and use the information to display it:

<%@ Page 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewPage<AppName.Models.MyViewModel>" 
%>
<div>
    Controller Parameter id: <%= Html.DisplayFor(x => x.Id) %>
    Controller Parameter name: <%= Html.DisplayFor(x => x.Name) %>
</div>

or if you were using the Razor view engine:

@model AppName.Models.MyViewModel
<div>
    Controller Parameter id: @Html.DisplayFor(x => x.Id)
    Controller Parameter name: @Html.DisplayFor(x => x.Name)
</div>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文