繁体   English   中英

使用window.location在AJAX成功中将对象传递给MVC控制器方法

[英]Passing an object to MVC controller method in AJAX success using window.location

Ajax通话-

        $.ajax({
            type: "POST",
            url: configMap.sitePath + "api/Quiz/" + quizResponse.quizId,
            data: JSON.stringify(quizResponse),
            success: function(data) {
                var resultid = data.data.quizInstanceId;
                var resultresponse = data.data;
                window.location.href = "supply-chain-pressure/ScptResult/" + resultresponse;
            }

控制器方法-

   public ActionResult ScptResult(QuizResult resultresponse)
    {
         // Do something
        return View();
    }

路线-

    routes.MapRoute(
        name: "SupplyChainPressureResult",
        //url: "supply-chain-pressure/ScptResult/{resultid}",
        url: "supply-chain-pressure/ScptResult/{resultresponse}",
        defaults: new { controller = "SupplyChainPressure", action = "ScptResult" }
        );

类-

public class QuizResult
    {
        public int quizInstanceId { get; set; }
        public string WeakestLinkCode { get; set; }
        public string WeakestLinkDescription { get; set; }
        public decimal PercentageOfUsers { get; set; }
        public IEnumerable<OverallResult> OverallResults { get; set; }
    }

但是由于某种原因,在controller方法中resultresponse为null。 有人可以帮忙吗。 我们需要将data.dataresultresponse )传递给控制器​​Method。

谢谢大家的帮助。 我只使用一个参数,然后重定向到控制器方法,该方法可以为我做这些事情-

 $.ajax({
                    type: "POST",
                    url: configMap.sitePath + "api/Quiz/" + quizResponse.quizId,
                    data: JSON.stringify(quizResponse),
                    success: function (data) {
                        var resultId = data.data.quizInstanceId;
                        window.location.href = configMap.sitePath + 'Result-Display/Index/' + resultId;
                       },

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM