如何创建动态 Razor 行,例如:
@{
string atr = "MyAttribute";
string s = "@Html.DisplayFor(modelItem => item.Type.Word." + atr + ")";
}
并使这些线条呈现为剃刀线条?
我试过:
@(new HtmlString(s))
和
@Html.Raw(s)
但没有运气。
如何创建动态 Razor 行,例如:
@{
string atr = "MyAttribute";
string s = "@Html.DisplayFor(modelItem => item.Type.Word." + atr + ")";
}
并使这些线条呈现为剃刀线条?
我试过:
@(new HtmlString(s))
和
@Html.Raw(s)
但没有运气。
我认为这是可以实现的,但不使用 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 的条件语句
经过我的研究,我发现这是不可行的。我没有创建动态剃刀线,而是在我创建的 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)