0

我已经挣扎了好几天了,没有任何成功。

父方法,返回一个视图:

    public ActionResult ContactHome(int currentTab = 0)
    {

        IContactPage content = this.FauxBouchonContactPage();

        Presentation.XXX.Logic.Models.CustomerCare.ContactHome model = new Presentation.XXX.Logic.Models.CustomerCare.ContactHome(content, currentTab);

        return this.View(VIEW_CONTACT_HOME, model);
    }    

查看代码:

@switch (Model.CurrentTab) { 
  case (int)Common.XXX.Enums.ContactPageType.BlockType:  @Html.Partial(Presentation.XXX.Logic.Controllers.CustomerCareController.VIEW_CONTACT_CHOSETYPE, new Presentation.XXX.Logic.Models.CustomerCare.ContactType()); break;
  case (int)Common.XXX.Enums.ContactPageType.BlockComplaint:  @Html.Partial(Presentation.XXX.Logic.Controllers.CustomerCareController.VIEW_CONTACT_RECLAIM, new Presentation.XXX.Logic.Models.CustomerCare.ContactReclaim()); break;
  case (int)Common.XXX.Enums.ContactPageType.BlockQuestion:  @Html.Action(Presentation.XXX.Logic.Controllers.CustomerCareController.ACTIONQUESTION, Presentation.XXX.Logic.Controllers.CustomerCareController.CONTROLLERNAME, new { isPost = false }); break;
  // others case

当在显示视图之前需要一些操作时,我调用 Html.Action 而不是 Html.Partial,这里没有问题。

模式如下:

  1. 调用第一个联系人类型,一个带有单选按钮的部分视图,用于选择联系人或投诉。
  2. 然后显示局部视图联系人或投诉。

问题如下,当访问视图contactType时,这是我得到以下url的顺序的第一个部分视图: http://xxx.com/fr/CustomerCare/ContactHome?currentTab=1

女巫是我想要的,但是当访问问题或投诉时,网址是:

http://xxx.com/CustomerCare/ChooseContactType

将此 url 粘贴到新选项卡中时,我会收到 404 错误,因为没有为我的局部视图定义路由。

而不是http://xxx.com/CustomerCare/ChooseContactType我想http://xxx.com/fr/CustomerCare/ContactHome?currentTab=3在 url 中显示。

怎样才能做到这一点?或者修复我的 404 错误。如果需要,我可以粘贴更多代码。

4

1 回答 1

0

对于遇到类似问题的任何人,我在这里找到了我的答案: 使用 RedirectToAction 时如何维护 ModelState 错误?

使用 RedirecToAction 获取正确的 Url 和 TempDate 来存储您的模型状态。

于 2013-10-08T14:08:55.293 回答