c# - ASP.Net MVC Ajax.BeginForm OnComplete 在 Razor View 中传递 c# 参数

标签 c# asp.net-mvc razor

我在 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/

相关文章:

c# - C# 新手 - 链接标签和函数的问题

c# - 在配置中设置 NLog RichTextBox 目标

c# - 使用 Interop 从 DataGrid 导出到 Excel 太慢

javascript - 如何 "playback"用户输入的内容 - MVC

c# - MVC 4 Dropdownlist通过按钮传递值?

c# - 如何运行多个线程并等待完成所有线程

javascript - 传单删除特定标记

asp.net - 是否可以在 Visual Studio 2010 的 ASP.NET MVC 项目中使用 HTML5?

razor - 我可以在 Blazor 中编写一个在 View 中动态呈现元素的函数吗?

asp.net-mvc - 按 ID 删除 MVC 5