您的位置:首页 > 编程语言 > ASP

Asp.Net Mvc 应用程序如何应对不同的URL地址?????,问题解决了

2009-07-03 18:07 573 查看
Asp.Net Mvc 应用程序如何应对不同的URL地址?????,问题解决了

在上一篇博文中,本人碰到了实际应用中的一些问题

可能是我问的问题有些弱智,害的高手们为了这个低智商的问题伤透了脑筋。还有位老大,不屑一顾的说不知道我要干什么!!!

其实在实际工作中,我想上文中描述的场景应该还是存在的。至少我现在就遇到了这个问题。

也可能是我在上一篇文章中没有把问题描述清楚,我其实是想寻找一种Asp.net Mvc 框架结构中的解决方案。

因为IIS服务器是一台,现在公司还没有能力添置更多的服务器,而且域名是在不同的时期申请的,领导要求将不同的域名绑定到一个Controller上。

各位高手给出的答案为3种:URL转发,二级域名CNAME,URL rewriter(Http Module) 。但是这些我都不熟,从头来浪费时间了。

绞尽脑汁思索解决方案,既然没有现成的,就自己啃吧!

在Google,Bing中按照URL,Asp.net Mvc等关键词搜啊搜,一篇一篇的看。

看着看着,突然脑海里闪出一丝光亮,解决方案有了。

解决方案:

将所有域名全部指向承载Asp.net Mvc应用程序的IIS服务器,这样用任何域名访问都是访问同样的一套Asp.net Mvc应用程序了。

在Asp.net Mvc应用程序的路由规则中定义:

    AControllers(A子公司)

    BControllers(B子公司)

    CControllers(C子公司)

    DControllers(D子公司)

    HomeControllers(总公司)

这样就满足了最开始的系统要求,然后在路由规则的最后一条创建一条默认的规则,所有的URL都最先满足这一条,然后在这条规则的Action方法中如下操作:

string url=this.HttpContext.Request.Url.ToString();
if (url.Contains("www.A.com"))
{
return RedirectToAction("Index", "A");
}
else
{
return RedirectToAction("Index", "Home");
}



当然这只是简单的演示,下一步还要从外部文件,例如Xml文件中读取转向规则,然后进行转向。

哈哈,应该思路还算是正确的吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: