【问题标题】:Asp.net mvc return to controller from jsonresultAsp.net mvc 从 jsonresult 返回控制器
【发布时间】:2014-11-21 13:55:28
【问题描述】:
[HttpPost]
public JsonResult DelayReminder(string reminderId)
{
ReminderStatus rs = new ReminderStatus();


rs.BaseProps.RequesterUserInfo.UserID = SessionManager.Current.CurrentUser.UserID;


ReminderServiceHelper.InsertNewStatus(Convert.ToInt32(reminderId), rs);

return Json(apptype, JsonRequestBehavior.AllowGet); // Problem...
}

而不是 return Json(apptype, JsonRequestBehavior.AllowGet); 我该如何在下面写?

return RedirectToAction("GetLawDetail", "Law", new { _lawID = baseappid });

如果有人想看 Javascript:

 $.ajax({
                    type: 'POST',
                    url: '/Reminders/DelayReminder/',
                    data: {
                        'apptype': '@ViewData["apptype"]',
                        'baseappid': '@ViewData["baseappid"]',
                        'reminderId': $("#reminderId").val(),
                        'ddlDelayDuration': $("#ddlDelayDuration").val()
                    },
                    dataType: 'json',
                    success: function (result) {

                        if (result != null) {
                    }

                            ....
                            ..

如何返回 Law 控制器以在 jsonresult 中获取 GetLawDetail actionresult

【问题讨论】:

  • 在json中返回url并使用js重定向

标签: c# asp.net-mvc jsonresult


【解决方案1】:

你可以只返回这个动作:

return GetLawDetail(baseappid)

您还应该将返回类型更改为@im1dermike 指出的操作结果。

完整代码如下:

[HttpPost]
public ActionResult DelayReminder(string reminderId)
{
ReminderStatus rs = new ReminderStatus();


rs.BaseProps.RequesterUserInfo.UserID = SessionManager.Current.CurrentUser.UserID;


ReminderServiceHelper.InsertNewStatus(Convert.ToInt32(reminderId), rs);

return GetLawDetail(apptype); // Problem...
}

虽然,它会返回给你整个渲染页面。

【讨论】:

  • 他还得把返回类型改成ActionResult我相信。
  • @soner 你一开始想完成什么?如果 GetLawDetail 位于此解决方案将起作用的同一控制器中,否则它将不起作用。
  • 它在另一个控制器中,也是另一个actionresult
  • 没有其他解决方案了吗?有时我因为微软而感到无助。我无法更改 .net 中的任何代码 :)
  • 我认为没有其他解决方案可以返回另一个 Action。尽管您可以仅使用一种方法(从 javascript 调用的方法)创建控制器并继承具有 GetLawDetail 方法的控制器,以便您可以按照我在答案中描述的方式调用它