Asp.net mvc 不要在asp.net中对字符串进行html编码

Asp.net mvc 不要在asp.net中对字符串进行html编码,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,我正在用razor语法跟踪上的代码。我的结论是: 我试过这个: @{Html.Grid("basic") .setCaption("Basic Grid") .addColumn(new Column("JobId") .setLabel("Id")) .addColumn(new Column("Title")) .addColumn(new Column("CreatedDate")) .setUrl(Url.Action("Jobs"

我正在用razor语法跟踪上的代码。我的结论是:

我试过这个:

@{Html.Grid("basic")
    .setCaption("Basic Grid")
    .addColumn(new Column("JobId")
        .setLabel("Id"))
    .addColumn(new Column("Title"))
    .addColumn(new Column("CreatedDate"))
    .setUrl(Url.Action("Jobs"))
    .setAutoWidth(true)
    .setRowNum(10)
    .setRowList(new int[]{10,15,20,50})
    .setViewRecords(true)
    .setPager("pager");}
它什么也不显示。我让它从
@
开始,然后对数据进行编码。

试试:

@(new MvcHtmlString(Html.Grid("basic")
.setCaption("Basic Grid")
.addColumn(new Column("JobId")
    .setLabel("Id"))
.addColumn(new Column("Title"))
.addColumn(new Column("CreatedDate"))
.setUrl(Url.Action("Jobs"))
.setAutoWidth(true)
.setRowNum(10)
.setRowList(new int[]{10,15,20,50})
.setViewRecords(true)
.setPager("pager").ToString())
如果不希望对网格进行编码,网格应该返回
MvcHtmlString
(或者只返回
IHtmlString
)。最好的解决方案是编写名为
ToMvcHtmlString()
的扩展方法,该方法返回正确的值。然后您只需使用
Html.Grid().ToMvcHtmlString()
。这比在视图内部创建对象要好。

尝试以下方法:

@{ var grid = Html.Grid("basic")
.setCaption("Basic Grid")
.addColumn(new Column("JobId")
    .setLabel("Id"))
.addColumn(new Column("Title"))
.addColumn(new Column("CreatedDate"))
.setUrl(Url.Action("Jobs"))
.setAutoWidth(true)
.setRowNum(10)
.setRowList(new int[]{10,15,20,50})
.setViewRecords(true)
.setPager("pager");
}

Html.Raw(grid.ToString());

更好的方法是grid.ToString()返回一个IHtmlString,这样您就不需要使用Html.Raw它了

我正在查看它们的源代码,它们似乎不返回字符串,而是返回某个对象。@Lol coder:ToString()方法肯定会返回字符串。看看这个方法。