具有 Asp.net MVC3的淘汰赛向导

本文关键字:淘汰赛 向导 MVC3 Asp net 具有 | 更新日期: 2024-10-31 18:14:43

我有一个这样的向导:http://jsfiddle.net/rniemeyer/FyuSD/当我单击按钮时,当前步骤的下一个数据被发送到服务器(发送数据的函数未显示在此链接中)在服务器中我有这样的操作:

控制器:

    [HttpPost]
    public ActionResult SocialNetworkChoice(string[] selectedSocialNetwork)
    {
        if (selectedProduct!= null)
        {
          // check if the user got a social account linked in for 
          // all the selected networks and redirect to the link account page
          ....
            if (q.Count() > 0)
            {
                return RedirectToAction("LinkAccount", "Account",
                         new LinkAccountModel() { ProviderName = q.First() });
            }
            else
            {....}
         }
    }

淘汰赛:

    <script id="socNetchoiceTmpl" type="text/html">         
       <ul data-bind="foreach: socialNetworksList, visible:
                  socialNetworksList().length > 0">
          <li>
             <input type="checkbox" data-bind="value: $data, checked:  
                 $parent.selectedSocialNetworks" /><span data-bind="text: $data"/>
          </li>
       </ul>
    </script>

   function SocialNetChoicesViewModel() {
    var self = this;
    self.socialNetworksList = ko.observableArray([]);
    self.selectedSocialNetworks = ko.observableArray([]);
     self.save = function () {
        $.ajax("/Home/SocialNetworkChoice", {
            data: ko.toJSON({ selectedSocialNetworks: self.selectedSocialNetworks }),
            type: "post", contentType: "application/json",
            success: function (result) {
                if (result.Success) {
                    //alert(result.Message);
                }
                else {
                    alert(result.Message);
                }
            }
        });
     };
     // Load initial state from server, convert it to Task instances,
     //  then populate self.tasks
     $.getJSON("/Home/SocialNetworkChoice", function (allData) {
        var mappedItems = $.map(allData, function (item) { return item });
        self.socialNetworksList(mappedItems);
    });
   };

在第一步中,我有两个社交网络复选框,当用户选中ckeckbox数据时,它发送到操作SocialNetworkChoice。如果 (q.Count()> 0) 操作"LinkAccount"的视图不显示,向导将转到第二步

如果(q.Count()> 0)重定向到链接帐户(视图)否则到第二步,如何解决此问题

对不起,我的英语不好,

谢谢

具有 Asp.net MVC3的淘汰赛向导

您只是重定向 ajax 调用,而不是可见页面。

一种解决方案是检测重定向的 ajax 调用,并以编程方式相应地重定向页面。 例如,从javascript设置window.location。