当前位置:编程学习 > C#/ASP.NET >>

求救,怎么设置MVC首页

求救,怎么设置MVC首页,

 1.要 http//:server/ 访问这种形式的

 2.如果这样,首页到底放在哪呀,在Views文件夹下吗??




--------------------编程问答-------------------- 肯定是view文件夹下。MVC 建立一个项目的时候他里面的模版默认首页是 view下home文件夹下的index.aspx
如果要自己设置就Global.asax.cs里面配置一下路由下面是默认设置

            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}.ashx/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index",id = ""}  // Parameter defaults
            );
--------------------编程问答-------------------- 我只要要 http//server/ 直接域名访问首页,怎么设置 --------------------编程问答-------------------- 默认设置就能直接用域名访问首页的。 --------------------编程问答-------------------- http://www.pxchina.net  这个网站就MVC框架下开发的  直接域名访问也可以访问,输入http://www.pxchina.net/home.ashx/index  也可以访问,两个显示的其实是同一个页面。 --------------------编程问答-------------------- 我直接输入域名显示 目录啊,
            routes.MapRoute(
                 "Dfault",
                 "{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = "" }
                );

这里应该怎么改呀 --------------------编程问答-------------------- 路由也没错啊。你显示的目录是哪个目录?   /home/index ? --------------------编程问答--------------------
我的首页Default.aspx里面写了
 <%= Html.Encode(ViewData["Message"]) %>
总是报未实例化对象,
如果首页不写调用Controller层的方法,是可以访问的
如果首页里写<% Response.Redirect("/Home"); %> 是可以实现向4楼那样的,但是我不想这样做

我的首页 与Controll层好像有问题 --------------------编程问答-------------------- Default.aspx 是在哪个位置? Views 外边吧?ViewData是MVC下的的 所以要使用的话,确认你的Default.aspx继承自System.Web.Mvc.ViewPage  就是头部这里<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
你出错的Default.aspx头部估计类似这样的吧<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="_Default" %> --------------------编程问答-------------------- 还有就是新建的MVC项目,根目录下的Default.aspx 一般不怎么修改的。网站的首页就用home 下的index就好。 --------------------编程问答--------------------
引用 1 楼 kdalan 的回复:
肯定是view文件夹下。MVC 建立一个项目的时候他里面的模版默认首页是 view下home文件夹下的index.aspx
如果要自己设置就Global.asax.cs里面配置一下路由下面是默认设置
C# code
            routes.MapRoute("Default",// Route name"{controller}.ashx/{action}/{id}",// URL with parametersnew { controller="Home", action="Index",id=""}// Parameter defaults            );

 一楼正解 --------------------编程问答-------------------- MVC你的路由配置 你还的多学习哈,这是热门技术! --------------------编程问答--------------------

Views内有没有Default.aspx 通过http://localhost/浏览都是目录,

有没有朋友 发个例子给我看下,要求,

1.首页在Views层,
2.访问首页时,地址栏为域名:http://localhost/  --------------------编程问答-------------------- 再加50分

程序发到我邮箱:763429951@qq.com --------------------编程问答-------------------- 用VS2008建立了个默认的MVC项目 发到邮箱了,你直接用VS打开看一看默认的结构就知道了。 --------------------编程问答--------------------    这个很简单
   你在default.aspx 页面的pageload 里面写一个 
               Response.Redirect("../home.aspx");
  就ok了 --------------------编程问答-------------------- 将 home/index 映射到 / --------------------编程问答-------------------- view里面的home页面

   #region Default
       routes.MapRoute(
           "Default",                                  
           "{controller}.mvc/{action}/{id}",                            
            new { controller = "Home", action = "Index", id = "" } );

项目中default.aspx

    public partial class _Default : Page
    {
        public void Page_Load(object sender, System.EventArgs e)
        {
            Response.Redirect("~/Home");
        }
    }

这是我们以前的项目... --------------------编程问答-------------------- 上面更正一个地方 不是view的home页面 
而是Global.asax.cs页面 --------------------编程问答--------------------  我知道Response.Redirect("~/Home"); 但我是想避开这样做的,我不知道这样做会不会影响到网站首页pr值。


最后谢谢kdalan,发来的文件
他也是把首页放在views外部,即网站根目录下。自己理想的有点不符,但他没有使用Response.Redirect("~/Home"); 也算可以了。

但我还是想弄明白,能不能把首页发在Views层内,通过配置Route,来解决问题
--------------------编程问答--------------------
引用 19 楼 ppmz1987 的回复:
我知道Response.Redirect("~/Home"); 但我是想避开这样做的,我不知道这样做会不会影响到网站首页pr值。


最后谢谢kdalan,发来的文件
他也是把首页放在views外部,即网站根目录下。自己理想的有点不符,但他没有使用Response.Redirect("~/Home"); 也算可以了。

但我还是想弄明白,能不能把首页发在Views层内,通过配置Route,来解决问题



那个不是真正的首页。真正的首页在 Views目录home下的index.aspx --------------------编程问答-------------------- 亮下kdalan的方法:
在Default.aspx 页面:

       
string originalPath = Request.Path;
          HttpContext.Current.RewritePath(Request.ApplicationPath, false);
          IHttpHandler httpHandler = new MvcHttpHandler();
          httpHandler.ProcessRequest(HttpContext.Current);
          HttpContext.Current.RewritePath(originalPath, false);
--------------------编程问答-------------------- 晕 那是MVC框架自动生成的。不是我的方法...... --------------------编程问答-------------------- 那段代码把home/index.aspx 内容放到default.aspx,页面了 --------------------编程问答-------------------- 首先,我觉得你要把观念换了。MVC不是传统的webForm  edm(Event Driver Model)模型了。
其次:MVC页面的访问你要想到MVC的路由(Route)。如何配置路由呢:Global.cs里面已经配置了一个默认的访问viewPage:routes.MapRoute(
           "Default",                                  
           "{controller}.mvc/{action}/{id}",                            
            new { controller = "Home", action = "Index", id = "" } );
你可以通过改动controller ,或者action 的方式访问你想访问的页
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,