我正在尝试让我的nopCommerce 3.50网站在访问该网站时打开一个特定页面。
当我在本地调试项目时,它正常工作,因为我将特定页面'welcome.html'设置为项目属性中的启动操作(在Visual Studio 2012中)。但是,一旦站点在服务器上发布,它就会忽略此请求。
在IIS中,我检查过'welcome.html'位于默认页面列表的顶部,但是nopCommerce忽略了这些设置(在各种论坛中都可以找到),即使你删除了其他所有设置,它也总是默认设置。 ASPX。
我已经尝试将其添加到system.webserver中的web.config中,这没有任何区别:
<defaultDocument>
<files>
<add value="Welcome.html"/>
</files>
</defaultDocument>
配置中没有其他对默认起始页面的引用。
我不太熟悉nopCommerce或路由,有谁知道我可以在哪里/哪里更改默认页面?到目前为止,我在论坛上发现的一切都没有用。是的,我在每次更改后重建了项目,通常完全替换服务器上的bin文件夹以确保。
我不希望网站重定向到特定的操作或视图,而是重定向到项目的根文件夹中的静态HTML文档(我真的不想要这个,但客户端已经非常具体他们想要什么)。静态页面有两个按钮,一个将转到nopCommerce default.aspx,另一个转到另一个站点。
由于
答案 0 :(得分:1)
找到一种方法来满足要求:
这样,nopCommerce中的代码不需要进行任何更改,并且可以实现所需的结果。
答案 1 :(得分:1)
您可以在global.asax.cs
中更改路线默认路线是
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "Nop.Web.Controllers" }
);
此路由将告诉您在HomeController中执行,有Index动作(函数)并返回在Views下使用相同名称定义的视图。查看路径将为Views / Home / Index
要更改它,您应该添加一个欢迎函数(只需复制索引函数并使用welcome重命名并将其粘贴到HomeController中)。
然后你可以改变你的路由。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Welcome", id = UrlParameter.Optional },
new[] { "Nop.Web.Controllers" }
);
别忘了在Views / Home下以Welcome.cshtml
创建欢迎视图