0

如何创建动态 Razor 行,例如:

@{
    string atr = "MyAttribute";
    string s = "@Html.DisplayFor(modelItem => item.Type.Word." + atr + ")";
}

并使这些线条呈现为剃刀线条?

我试过:

@(new HtmlString(s))

@Html.Raw(s)

但没有运气。

4

2 回答 2

0

我认为这是可以实现的,但不使用 HtmlHelpers,而是使用直接创建的 html,如下所示:

@foreach(var modelItem in Model){
    string atr = "MyAttribute";
    string tag = string.Format(@"<a href=""{0}"">{1}</a>","#",modelItem.Type.Word+atr);
    <text>@tag</text>
}

在尖括号内,您可以执行将导致动态 html 的条件语句

于 2012-12-23T22:26:23.960 回答
0

经过我的研究,我发现这是不可行的。我没有创建动态剃刀线,而是在我创建的 Helpers 目录中创建了一个新的 Helper 类,并定义了一个以所需语言返回 Word 的函数:

public abstract class Helper<T> : WebViewPage<T> 
{
    int languageID = Convert.ToInt16(System.Web.HttpContext.Current.Session["Language"]);
    public virtual string getWord (int? id)
    {
        string wantedWord = //operations..;
        return wantedWord;
    }
}

并在 Views 目录中的我的 WebConfig.xml 中定义了 pageBaseType。

<pages pageBaseType="MyProject.Helpers.Helper">

我在我的视图中调用该函数:

@getWord(//variables)
于 2012-12-31T19:55:46.730 回答