我有这样的MVC代码并想传递模型值@conversionModel.SourceFileName
不幸的是这个代码实际上没有被执行,在我的情况下会有什么正确的Razor语法?
@Ajax.ActionLink("Remove file", "RemoveFile", "Converter",
new { id = @conversionModel.ProcessId },
new AjaxOptions {
OnComplete = "RemoveFile(@conversionModel.SourceFileName);"
})
答案 0 :(得分:0)
@Ajax.ActionLink(
"Remove file",
"RemoveFile",
"Converter",
new {
id = conversionModel.ProcessId
},
new AjaxOptions {
OnComplete = string.Format(
"RemoveFile({0})",
Json.Encode(conversionModel.SourceFileName)
)
}
)
答案 1 :(得分:0)
传递给“OnComplete”的字符串不会被Razor引擎解析,它只是在ajax调用完成时执行的一个简单的javascript字符串。
@Ajax.ActionLink("Remove file", "RemoveFile", "Converter",
new { id = @conversionModel.ProcessId },
new AjaxOptions {
OnComplete = string.Format("RemoveFile({0})", Json.Encode(conversionModel.SourceFileName))
})
更新:而不只是引用字符串,它应该使用Json.Encode进行编码,如Darin所说。