【问题标题】:How to pass parameters to a controller action method from a jquery callback? [closed]如何从 jquery 回调将参数传递给控制器​​操作方法? [关闭]
【发布时间】:2013-09-23 20:06:33
【问题描述】:

我正在使用 asp.net mvc4 开发一个网络应用程序。我有一个对控制器操作方法的 ajax 调用,并且在成功回调时我需要重定向到具有 2 个参数的不同操作方法。我知道 window.location.href 适用于重定向,但我不确定如何传递参数。有人可以帮忙吗?

谢谢

【问题讨论】:

  • 你可以使用查询字符串..它可以正常工作。
  • 通过展示您迄今为止所做的尝试来帮助我们帮助您。
  • 这是我试过的

标签: jquery asp.net asp.net-mvc-4


【解决方案1】:

你可以试试这个,用动作和参数调用一个特定的控制器。

window.location.href = "@Url.Action("Action", "Controller")" +"/"+ parameter ;

用“/”分隔每个参数。

【讨论】:

    【解决方案2】:

    可以按如下方式传递参数:

    window.location.href = '@Url.Action("Action", "Controller", new { param1 = "", param2 = "" })';
    

    【讨论】:

      【解决方案3】:

      HTML:

      <input type="text" id="UserName" name="UserName" />
      <input type="button" onclick="MyFunction()"value="Send" />
      
      <div id="UpdateDiv"></div> 
      

      Javascript:

      function MyFunction() {
      var data = {
      UserName: $('#UserName').val(),
      };
      $.ajax({
      url: "/Home/GetEmployer",
      type: "POST",
      dataType: "json",
      data: JSON.stringify(data),
      uccess: function (mydata) {
      $("#UpdateDiv").html(mydata);
      history.pushState('', 'New URL: ' + href, href); // This Code lets you to change url  howyouwant (Optional)
      });
      return false;
      }
      }
      

      控制器:

      public ActionResult GetEmployer(string UserName,MyModel model)
      {
      var stringView = RenderRazorViewToString("YOURPARTİALVİEW", model);
      return Json(stringView, JsonRequestBehavior.AllowGet);
      }
      

      Json 必需

      public string RenderRazorViewToString(string viewName, object model)
      {
      ViewData.Model = model;
      using (var sw = new StringWriter())
      {
      var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext,viewName);
      var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
      viewResult.View.Render(viewContext, sw);
      viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
      return sw.GetStringBuilder().ToString();
      }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-25
        • 1970-01-01
        • 2014-07-21
        • 1970-01-01
        • 2011-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多