Javascript 如何使用Razor显示模板将字符串转换为html字符串

Javascript 如何使用Razor显示模板将字符串转换为html字符串,javascript,html,asp.net-mvc,razor,asp.net-ajax,Javascript,Html,Asp.net Mvc,Razor,Asp.net Ajax,我不熟悉razor和显示模板,所以请纠正我的错误。我正在处理一个包含HTML的字符串。如果我尝试,我的Ajax表单将拒绝提交。作为一种解决方法,我尝试使用显示模板来实现类似的目标 我的@foreach循环包含以下内容 @Html.DisplayFor(modelItem => myModel.myString, "HtmlString") 我的DisplayTemplate包含以下内容 @Html.DisplayFor(modelItem => myModel.myString

我不熟悉razor和显示模板,所以请纠正我的错误。我正在处理一个包含HTML的字符串。如果我尝试,我的Ajax表单将拒绝提交。作为一种解决方法,我尝试使用显示模板来实现类似的目标

我的
@foreach
循环包含以下内容

 @Html.DisplayFor(modelItem => myModel.myString, "HtmlString")
我的DisplayTemplate包含以下内容

 @Html.DisplayFor(modelItem => myModel.myString, "HtmlString")
HtmlString.cshtml

@model String

@{
    new HtmlString(@Model);
}
所以如果
myString=“
  • 我的文本”

我希望我的ajax表单显示我的文本


我现在拥有的东西不起作用,什么也没有回报。请帮我纠正我的错误。

你应该使用
@Html.Raw()
like

@Html.Raw(Model.myString)


希望这有帮助。

我对您的代码做了一些小修改。请测试并实现

HtmlString.cshtml
文件中,将代码替换为以下内容。这是在
foreach
循环中调用的
局部视图
,并传递一个
字符串
值,该值包含
HTML
@Html.Raw
用于将Html显示为Html:

@model String

@Html.Raw(Model)
视图将收到从控制器的操作方法传递的字符串列表。每个字符串都包含HTML:

@model List<string>

@foreach (var s in Model)
{
     @Html.Partial("HtmlString", s)
}
@型号列表
@foreach(模型中的var s)
{
@Html.Partial(“HtmlString”,s)
}
这是我用来测试您的场景的数据。输出的HTML是正确的:

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);
}
public ActionResult TestMethod1()
{
列表字符串=新列表();
字符串。添加(“
  • 我的文本”
    • ”; 字符串。添加(“
      • 我的文本”
        • ”; 返回视图(字符串); }
结果输出如下所示:

<ul><li>my text</li></ul><ul><li>my text</li></ul>
  • 我的文本
    • 我的文本

我希望我正确地理解了你的问题?

你的意思是在
HtmlString.cshtml
中使用
@Html.Raw(Model.myString)
?因为我试图在视图中使用它,而Ajax表单拒绝提交。@usr4896260。使用
Html.Raw()
是正确的。但这与Ajax表单无关。如果您对此有问题,则应显示相关代码。