0

次のような動的な Razor ラインを作成するにはどうすればよいですか。

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

これらの線を Razor の線としてレンダリングしますか?

私は試した:

@(new HtmlString(s))

@Html.Raw(s)

しかし、それでは運がありません。

4

2 に答える 2

0

調査の結果、これは実行できないことがわかりました。動的なカミソリ線を作成する代わりに、ヘルパー ディレクトリに新しいヘルパー クラスを作成し、必要な言語で 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 に答える
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 に答える