我在MVC C# Razor视图中有以下代码:
@{string url = "/Projects/_MonthRangesScriptsPartial";}
@using (Ajax.BeginForm(
"_MonthRanges",
"Projects",
new { id = ViewBag.InputResourceID },
new AjaxOptions {
HttpMethod = "POST",
UpdateTargetId = "MonthRanges",
InsertionMode = InsertionMode.Replace,
OnComplete = "updategraphArrayScript(@url,@ViewBag.InputResourceID)"
}))
代码几乎完美运行,但我想在OnComplete行中将c#变量解析为它们的值。
也就是说,Razor引擎应该将代码解析为(例如):
<form action="/Projects/_MonthRanges/55"
data-ajax="true" data-ajax-complete="updategraphArrayScript(/Projects/assets,55)"
...>
不是:
<form action="/Projects/_MonthRanges/55"
data-ajax="true" data-ajax-complete="updategraphArrayScript(@url,@ViewBag.InputResourceID)"
...>
string url = "\'/Projects/_MonthRangesScriptsPartial\'";
我可以转义引号,使String.Format不会将其替换为'
,但是 Ajax.BeginForm 决定仍然用'
替换它们。双倍和三倍转义似乎都没有用 - 有什么想法? - Chopo87onComplete
,这应该可以工作... - Samuel Cailleriedata-ajax-complete="@onComplete"
。然而,我认为这实际上是一个关于Razor如何处理引号的单独问题,因此我将在新问题中发布。 - Chopo87