我在 MVC c# Razor View 中有以下代码:
@{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)"
}))
代码几乎完美运行,但我想将 c# 变量解析为其在 OnComplete 行中的值。
也就是说,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 onComplete = String.Format("updategraphArrayScript({0}, {1})", url, ViewBag.InputResourceID);
}
@using (Ajax.BeginForm(
"_MonthRanges",
"Projects",
new { id = ViewBag.InputResourceID },
new AjaxOptions {
HttpMethod = "POST",
UpdateTargetId = "MonthRanges",
InsertionMode = InsertionMode.Replace,
OnComplete = @onComplete
}))
关于c# - ASP.Net MVC Ajax.BeginForm OnComplete 在 Razor View 中传递 c# 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15947755/