我是剃须刀和显示模板的新手,所以请在我错的地方纠正我。我正在使用包含HTML的字符串。如果我尝试converting it directly to a HtmlString,我的Ajax表单拒绝提交。作为一种解决方法,我尝试使用显示模板,目标是实现类似这样的
我的@foreach
循环包含此
@Html.DisplayFor(modelItem => myModel.myString, "HtmlString")
我的DisplayTemplate包含此
HtmlString.cshtml
@model String
@{
new HtmlString(@Model);
}
所以如果myString = "<ul><li>my text</li></ul>"
我希望我的ajax表格显示
我现在所做的并不起作用。请帮助我做错了。
答案 0 :(得分:1)
您应该使用@Html.Raw()
之类的;
@Html.Raw(Model.myString)
希望这有帮助。
答案 1 :(得分:0)
我对您的代码进行了一些小修改。请测试并实施。
在HtmlString.cshtml
文件中,使用以下内容替换您的代码。这是在partial view
循环中调用的foreach
,并传递包含string
的{{1}}值。 HTML
用于将HTML显示为HTML:
@Html.Raw
您的视图将收到从控制器的操作方法传递的字符串列表。每个字符串都包含HTML:
@model String
@Html.Raw(Model)
这是我用来测试您的方案的数据。输出的HTML是正确的:
@model List<string>
@foreach (var s in Model)
{
@Html.Partial("HtmlString", s)
}
结果输出如下:
public ActionResult TestMethod1()
{
List<string> strings = new List<string>();
strings.Add("<ul><li>my text</li></ul>");
strings.Add("<ul><li>my text</li></ul>");
return View(strings);
}
我希望我能正确理解你的问题吗?