javascript - 带有 Javascript 的 Razor

标签 javascript asp.net-mvc razor

 @if (Model.PaymentMethodTypeId == (int) PaymentMethodType.PayPal)
 {
     var url = @MyLibraryHtml.JavascriptEncodeUrl(Url.RewriteAction("SaveNewPaymentMethod", "PaymentMethods"));
     var args = form.serialize();
     @Html.Raw(" var url = ")
 }

在 if block 中,代码是 Javascript,但正如我所料,Razor 将 var url 和 var arg 视为 .NET 变量。

我知道我可以使用 Html.Raw 但是对于这个问题有没有其他更好的解决方案,因为我相信 Html.Raw 会破坏可读性

最佳答案

您可以使用 <text></text>元素告诉 Razor if 中的代码应该被视为“文本”而不​​是 C# 代码:

@if (Model.PaymentMethodTypeId == (int) PaymentMethodType.PayPal)
 {
     <text>
     var url = @MyLibraryHtml.JavascriptEncodeUrl(Url.RewriteAction("SaveNewPaymentMethod", "PaymentMethods"));
     var args = form.serialize();
     </text>
 }

或者,如果您只有几行,您可以使用 @: “转义”单行:

@if (Model.PaymentMethodTypeId == (int) PaymentMethodType.PayPal)
 {
     @:var url = @MyLibraryHtml.JavascriptEncodeUrl(Url.RewriteAction("SaveNewPaymentMethod", "PaymentMethods"));
     @:var args = form.serialize();
 }

关于javascript - 带有 Javascript 的 Razor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25960927/

相关文章:

javascript - 在nodeJs上,SQL Server可以将连接表返回为对象数组吗?

asp.net-mvc - ASP.Net MVC View 架构

asp.net-mvc-3 - 如何为下拉列表使用数据注释?

补充 Razor MVC 的 Javascript 库

asp.net-mvc - 默认情况下将@Html.RadioButtonFor 设置为选中

javascript - 如何在ajax中引用文本字段名称?

javascript - Angular : No Error but not showing data in View

javascript - 将鼠标悬停在其他元素上时如何删除并重新设置输入焦点

asp.net-mvc - Asp.net mvc & 如何将 jquery 函数应用于动态控件

asp.net-mvc - MVC 验证模型属性 : Client side validation not occurring, 仅服务器端