@if (Model.PaymentMethodTypeId == (int) PaymentMethodType.PayPal)
{
var url = @MyLibraryHtml.JavascriptEncodeUrl(Url.RewriteAction("SaveNewPaymentMethod", "PaymentMethods"));
var args = form.serialize();
@Html.Raw(" var url = ")
}
如果块代码是Javascript,但如我所料,Razor将var url和var arg视为.NET变量。带有Javascript的剃刀
我知道我可以使用Html.Raw但有此问题的任何其他更好的解决办法,因为我相信,Html.Raw打破可读性
我不确定这样的js和c#的混合是不错的解决方案。我认为最好是初始化一些js var form c#,然后在js中执行cndition或使用data-attribute将数据传递给js。一般保持js与c#(剃刀)代码分离。任何人同意? – py3r3str 2014-09-21 16:16:33
@ py3r3str其实你是对的,因为这是一个业务逻辑,它必须在控制器上完成,但是我正在更新这段代码,它和以前一样,所以我没有机会改变我在做的方式 – 2014-09-21 16:18:24