ASP MVC,部分视图的URL错误。需要具体网址

问题描述 投票:0回答:1

我已经奋斗了好几天了,没有任何成功。

父方法,返回一个视图:

    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://sample.com/fr/CustomerCare/ContactHome?currentTab=1

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

http://sample.com/CustomerCare/ChooseContactType

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

我想在 URL 中显示

http://sample.com/CustomerCare/ChooseContactType
,而不是
http://sample.com/fr/CustomerCare/ContactHome?currentTab=3

如何实现这一目标?或者修复我的 404 错误。如果需要,我可以粘贴更多代码。

asp.net-mvc url partial-views
1个回答
0
投票

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

使用 RedirecToAction 获取正确的 Url 和 TempDate 来存储您的 modelState。

© www.soinside.com 2019 - 2024. All rights reserved.