【发布时间】:2014-09-21 23:48:05
【问题描述】:
@if (Model.PaymentMethodTypeId == (int) PaymentMethodType.PayPal)
{
var url = @MyLibraryHtml.JavascriptEncodeUrl(Url.RewriteAction("SaveNewPaymentMethod", "PaymentMethods"));
var args = form.serialize();
@Html.Raw(" var url = ")
}
if 块内部的代码是 Javascript,但正如我所料,Razor 将 var url 和 var arg 视为 .NET 变量。
我知道我可以使用 Html.Raw,但是对于这个问题还有其他更好的解决方案吗,因为我相信 Html.Raw 会破坏可读性
【问题讨论】:
-
我不确定 js 和 c# 的这种混合是否是好的解决方案。我认为最好从 c# 初始化一些 js var 然后在 js 中进行 cndition 或使用 data- 属性将数据传递给 js。通常将 js 与 c#(razor) 代码分开。有人同意吗?
-
@py3r3str 实际上你是对的,因为这是一个业务逻辑,它必须在控制器中完成,但是我正在更新这段代码,它就像以前一样,所以我没有机会改变方式我正在做的事情
标签: javascript asp.net-mvc razor