【问题标题】:MVC routing when i configure my site to www.domain.com/m当我将站点配置为 www.domain.com/m 时的 MVC 路由
【发布时间】:2013-09-24 01:38:56
【问题描述】:

当我将站点配置为 www.domain.com/m 时,MVC 路由出现问题

我们正在开发将在 asp.net 中可用并在 www.domain.com 中配置的购物车网站,现在我们正在使用 Asp.net MVC 4 开发移动网站。

如果我们要创建单独的子域,例如http://m.domain.com,我需要为该域购买 SSL。我们决定使用以下 URL www.domain.com/m 转到移动站点,以便在不重定向另一个域的情况下轻松导航移动设备。

我已将我的 MVC 4 移动网站发布到 /m 文件夹。移动网站在 www.domain.com/m 上运行良好,当我来到我的 html 表单发布方法时,如下所示。我无法访问 /{controller}/{action}

<form ReturnUrl="" action="/m/Account/Login" data-ajax="false" method="post">

</form>

**my razor syntax**
@using (Html.BeginForm("Login", "Account", FormMethod.Post, new { data_ajax = "false", ReturnUrl = ViewBag.ReturnUrl }))
{
}

【问题讨论】:

  • 意思是你得到一个 404?你的路由是什么样子的?
  • routes.MapRoute(name: "Default", url: "{controller}/{action}", defaults: new { controller = "Home", action = "Index" } );跨度>
  • 当我在 URL 前添加 /m 时,/m 站点不工作 routes.MapRoute( name: "Default", url: "m/{controller}/{action}", defaults: new {控制器=“家”,动作=“索引”});
  • 那条路线是唯一的路线吗?你有两个一起吗?他们注册的顺序是什么?
  • 当我使用 {m}/{controller}/{action} 或 m/{controller}/{action} 时,我收到以下错误:403 - 禁止访问:访问被拒绝。您无权使用您提供的凭据查看此目录或页面。

标签: asp.net asp.net-mvc-4 asp.net-mvc-routing mobile-website


【解决方案1】:

在动作之前使用~。动作=“~/m/帐户/登录”。看看这是否有效!

【讨论】:

  • 在 HTML 中我可以给〜,但在剃刀形式怎么可以。剃刀表单示例:@using (Html.BeginForm("Login", "Account", FormMethod.Post, new { data_ajax = "false", ReturnUrl = ViewBag.ReturnUrl }))
  • 在服务器上,问题仅出现在 HTML 页面上。剃须刀引擎不需要这个相对 url,因为在项目中它获取特定的 Controller 和 Action,但是使用 html url,它会搜索路径
猜你喜欢
  • 2016-06-19
  • 1970-01-01
  • 2015-06-26
  • 2010-10-18
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
相关资源
最近更新 更多