【发布时间】:2014-07-28 14:29:15
【问题描述】:
我正在尝试实施 https://github.com/jonfazzaro/mvc-spa/tree/master/mvc-spa 在我的 ASP.NET MVC 应用程序中。
我将仅突出显示 _Layout.cshtml 中的代码
<div id="body">
@RenderSection("featured", required: false)
<section id="page" class="content-wrapper main-content clear-fix">
@RenderBody()
</section>
</div>
<footer>
<div class="content-wrapper">
<div class="float-left">
<p>© @DateTime.Now.Year - My ASP.NET MVC Application</p>
</div>
</div>
</footer>
@*@Scripts.Render("~/bundles/jqueryui")*@
@Scripts.Render("~/js/mvc-spa")
<script>
$(function () {
var routing = new Routing('@Url.Content("~/")', '#page', '');
routing.init();
});
</script>
这里又是来自 git hub 的路由配置
var Routing = function (appRoot, contentSelector, defaultRoute) {
function getUrlFromHash(hash) {
var url = hash.replace('#/', '');
if (url === appRoot)
url = defaultRoute;
return url;
}
return {
init: function () {
var app = Sammy(contentSelector, function () {
this.get(/\#\/(.*)/, function (context) {
var url = getUrlFromHash(context.path);
context.load(url).swap();
});
})
app.run('#/');
}
};
}
如果我转到 /#/about 或 /#/contact(如 git hub 中的示例应用程序),一切看起来都很好,但是当导航到我的应用程序页面的 #/(根路径)时,我的应用程序页面被一遍又一遍地调用
发生了什么事?
我问自己的另一个问题是如何处理 404 错误 当去/#/nosuchurl
【问题讨论】:
标签: asp.net-mvc model-view-controller asp.net-mvc-5 single-page-application sammy.js