我正在构建一个MVC4 web应用程序,并且想要在我的web应用程序的起始点中设置特定的URL。MVC4如何设置默认网址?
所以我改变了RouteConfig.cs中的一些值,如下所示。
routes.MapRoute(
name: "Default",
url: "{action}.mon/{id}",
defaults: new { controller = "login", action = "index", id = UrlParameter.Optional }
);
你可以通知这一点,但我把后缀名的行动之后,这样我就可以调用一个控制器,显示如“index.mon”
,如果我手动将URL“index.mon “在URL栏中的主机地址后,它就可以正常工作。 但是当应用程序自动启动时,它会引发403.14错误。 (“自动启动”是指在这里,我通过把F5键运行一个临时的IIS服务器运行这个程序。)
登录控制器看起来像这样
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Data.OleDb;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Monarch815MVC.Controllers
{
public class loginController : Controller
{
//
// GET: /login/
public ActionResult index()
{
return View();
}
public ActionResult loginProcess(string id = "000000", string pass = "example", string scode = "co")
{
Dictionary<string, object> sessionData = null;
String SqlCommand = "USP_LOGIN";
DataSet UserInfo = dataController.ExecuteDataset(dataController.CONN_STRING, CommandType.StoredProcedure, SqlCommand, arParms);
if (UserInfo.Tables[0].Rows.Count > 0)
{
sessionData = new Dictionary<string, object>();
for (int i = 0; UserInfo.Tables[0].Rows[0].Table.Columns.Count > i; i++)
{
sessionData.Add(UserInfo.Tables[0].Rows[0].Table.Columns[i].Caption, UserInfo.Tables[0].Rows[0].ItemArray[i]);
}
}
return View();
}
}
}
(让我们忘掉loginProcess,我花了关闭几个代码。)
我是否必须对index()或Web.config中的返回阶段执行一些操作?或者RouteConfig.cs?
我必须使用后缀“.mon”来调用控制器。
通过将.mon放在那里,您告诉路由只在URL的控制器部分包含.mon时路由。换句话说,你正在做的与你想要的完全相反。默认操作确实转到特定的url,它们是在没有给出url时执行的操作。 –
感谢您的评论,那么我如何设置您在上面提到的默认操作?我想我的应用程序开始使用“localhost/index.mon”如何做到这一点?这就是我要问的问题:( – hina10531
你没听我说过什么,你正试图让默认动作做一些他们不能做的事情,一个默认动作只会说“如果有这个控制器,就执行这个动作方法没有网址“,ie ..如果你说'http:// yoursite /'(没有别的)。默认动作不会让你重定向到一个特定的url.Router只解释当前的url并根据它执行一个动作 –