我正在構建一個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並根據它執行一個動作 –