C# ASP.NETMVC-从视图中获取对象模板字符串结果

C# ASP.NETMVC-从视图中获取对象模板字符串结果,c#,asp.net-mvc,C#,Asp.net Mvc,我重新开始我的问题,因为它被设置为重复,而不是-或者标记为重复的人应该向我解释为什么它是重复的。。。。。。。。。。 如何在C#类中获得方法Html.DisplayFor()的结果,比如在视图模型中,甚至在控制器中?而不是在Aspx或Razor视图中 [编辑] 事实上,我有一个表要显示,根据记录的数量,我使用Telerik表或简单的HTLM表 目前,我的视图中有一个函数,用于获取要为每一列显示的字符串,因此我对这两个表使用相同的格式 <%@ Control Language="C#" In

我重新开始我的问题,因为它被设置为重复,而不是-或者标记为重复的人应该向我解释为什么它是重复的。。。。。。。。。。

如何在C#类中获得方法Html.DisplayFor()的结果,比如在视图模型中,甚至在控制器中?而不是在Aspx或Razor视图中

[编辑] 事实上,我有一个表要显示,根据记录的数量,我使用Telerik表或简单的HTLM表

目前,我的视图中有一个函数,用于获取要为每一列显示的字符串,因此我对这两个表使用相同的格式

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ViewModels.OrderViewModel>" %>

<script runat="server" type="text/C#">

public string GetCellValue (String columnName, Order order)
{
        string value = "";
        switch (columnName)
        {
            case "Ref":
                value = order.order.Reference.ToString(); break;
            case "Etc":
                value = Html.DisplayFor(p => order.order.Etc).ToHtmlString();break;             
            case "Payment date": 
                foreach (Executions ex in order.executions)
                {
                    value += ex.Date.Date.ToString("yyyy-MM-dd") + " ";
                }
                break;      

公共字符串GetCellValue(字符串列名称、顺序)
{
字符串值=”;
开关(列名称)
{
案例“参考”:
value=order.order.Reference.ToString();break;
案例“等”:
value=Html.DisplayFor(p=>order.order.Etc).ToHtmlString();break;
案例“付款日期”:
foreach(按顺序执行。执行)
{
值+=ex.Date.Date.ToString(“yyyy-MM-dd”)+“”;
}
打破

例如,我想在ViewModel中将此函数移出视图,但我不知道如何从视图中调用函数Html.DisplayFor()。

不明白为什么要这样做,但是

using System.Web.Mvc;
using System.Web.Mvc.Html;

class Example {    

    void Method()
    {
       HtmlHelper<TModel> Html = new HtmlHelper<TModel>();
       MvcHtmlString result = Html.DisplayFor(prop => Model.Prop);
    }
}

因为,它应该只将其值显示为字符串(除非您已经为它设置了模板)。

这个问题很清楚,您的上一个问题不是。您可以在这里发布代码吗?使用ASP.NET MVC 3它似乎不起作用,DisplayFor方法不可用。我现在无法检查它,因为我没有在工作中安装MVC 3(并且没有安装权限),但我将用其他方式编辑我的答案。不幸的是,Etc是一个实体对象,MvcHtmlString的构造函数要求一个字符串,因此它无法工作。
       MvcHtmlString result = new MvcHtmlString(order.order.Etc);