asp.net-mvc - 如何在 ASP.NET MVC 中的 MVC 上动态显示字符串/ bool 对的名称和值的列表

标签 asp.net-mvc asp.net-mvc-3 partial-views

我需要根据用户选择在 MVC View (*.cshtml) 上动态显示字符串/ bool 对的名称和值的列表。具体来说,每个列表中字符串和 bool 对的名称和值都不同。还有多个列表可供用户选择。例如:

水果名称:苹果(字符串:字符串)

IsRipen:true(字符串: bool 值)

书名:C#

已售出:假

一种列表类型被定义为一种报告类型。可以通过编程方式从报告中检索列表。

可能的解决方案 1 由于列表中名称和值的数据类型是固定的(字符串、 bool 值),因此一种想法是将集合构建为 MVC 模型,并将该模型传递给 MVC razor View 。问题是如何在 View 上显示名称,

@Html.LabelFor(model => model.Names[0])  //how to display it as 'Fruit Name'

可能的解决方案2 在 ASP.NET Web 表单中,存在可以动态加载的用户控件。 ASP.NET MVC 中有部分 View 。部分 View 可以做我想要的吗?或者有没有更好的解决方案。

我是 MVC 新手,任何理想或示例都会非常感激。

最佳答案

如果我理解正确的话,您想要做的是创建一个部分 View 并使用 Controller 中的操作调用它。

首先,在 Controller 中执行类似的操作

    // partial
    public ActionResult report(string reportName)
    {
        return View(reportModel.Name);
    }

然后,确保有一个部分 View 与您的报告名称相同。

然后您可以像这样调用局部 View :

@{Html.RenderAction("report", "Home", new{ reportName="report"});}

上面的行会将部分 View Report.cshtml 渲染到父 View 或主布局中。

编辑

好的。所以每个报告都有一个名称值对列表,对吗?

假设,我们可以编写一个操作将该列表传递到您的 View 。

    public ActionResult DisplayPairs()
    {
        NameValueCollection pairs = new System.Collections.Specialized.NameValueCollection();
        pairs.Add("Name", "Value");
        pairs.Add("Name2", "Value2");
        pairs.Add("Name3", "Value3");
        pairs.Add("Name4", "Value4");

        return View(pairs);
    }

然后我们有 DisplayPairs View :

@model System.Collections.Specialized.NameValueCollection

@{
    ViewBag.Title = "DisplayPairs";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>DisplayPairs</h2>
<table>
@foreach(string key in Model.AllKeys){
    <tr><th>@key</th><td>@Model[key]</td></tr>
}
</table>

显示:

Name Value 
Name2 Value2
Name3 Value3 
Name4 Value4 

希望这有帮助

关于asp.net-mvc - 如何在 ASP.NET MVC 中的 MVC 上动态显示字符串/ bool 对的名称和值的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6844887/

相关文章:

asp.net-mvc - asp.net mvc 3 中 ajax actionresults 的单独 Controller

asp.net-mvc-3 - 是否可以将部分 View 传递给与其所在 View 使用的模型不同的模型?

asp.net-mvc - MVC中局部 View 和用户控件的区别

c# - 生成用户友好的 URL

asp.net-mvc-3 - 如何确保 ipn 响应来自 paypal

asp.net-mvc-3 - Global.asax.cs 在服务器上不可见

asp.net-mvc-3 - ASP.Net MVC 3 Unobtrusive 验证不适用于部分 View

asp.net-mvc - 登录后立即在 ActionFilter 中检查 User.Identity.IsAuthenticated

c# - ExceptionContext - 如何找出 http 操作类型?

asp.net-mvc - 从ASP.Net Webforms反模式毕业