2016-08-03 8 views
0

HtmlHelperのラムダ式にいくつかのhtmlを挿入する際にこの問題があります。 ラムダ式といくつかのhtmlを混在させようとしています。MVC 5 ASP.Net Razorデリゲート型ではないため、ラムダ式を 'MvcHtmlString'に変換できません

HtmlCell<EmployeeViewModel>.Create(x=> new MvcHtmlString(@<div>@x.Email</div>), null) 私が言っ@x.Emailにエラーメッセージが表示されます。

それはデリゲート型でないため「MvcHtmlString」を入力し、ラムダ式を変換-Cannot。ブロックでの戻り値の型のいくつかは、デリゲートの戻り値の型に暗黙的に変換されないので、

が意図したデリゲート型にラムダ式を変換-Cannot

私のHtmlHelperのプロトタイプは次のとおりです。

public ICell<TModel> Create(Expression<Func<TModel, string>> html, object htmlAttributes = null)

私は過去にこの記事を読んで:https://stackoverflow.com/a/18291265/3114267を(しかし、答えはそう多分それは進化し2014年からである)

何が悪いと思いますか?どのように修正することができ、ラムダといくつかの "Html"をどのように混在させることができますか?あなたはString.Formatのを避けたい場合は

答えて

1

試してみてください。この

HtmlCell<EmployeeViewModel>.Create(x=> 
    new MvcHtmlString(String.Format("<div>{0}</div>", x.Email)), null) 

更新

またはHTMLより複雑その後、@helper使用:

以下
HtmlCell<EmployeeViewModel>.Create(x=> func(x).ToHtmlString()), null) 

ビューで

@helper func(EmployeeViewModel employeeViewModel) 
{ 
    <div>@employeeViewModel.Email</div> 
} 
+0

それはそのように働いていますが、私は欲しかったString形式を避けるために。ご協力ありがとうございました。 – Lenny32

+0

回避するために更新を見てくださいString.Format –

+0

ありがとうございました。 – Lenny32

関連する問題