使用aspnetboilerplate时如何从一个视图链接到另一个视图?

时间:2017-10-11 17:36:59

标签: asp.net-mvc razor c#-2.0 aspnetboilerplate

我已尝试使用可在基本mvc项目中使用的普通链接,以及类似于我在视图页面中看到的链接,但我似乎得到的错误仅在我添加视图时才会解决作为MainMenu上的菜单项,这不是我想要做的。必须有办法解决这个问题......

我有一个页面'WorkOrders'(工作人员/索引),它显示工作订单列表。有一个创建新工单的链接,应该转到'创建'(工作单位/创建,我还需要让工作人员/创建/客户工作)页面。

<a asp-action="Create">Create New</a>

<a href="/workorders/create">Create New</a>

单击时都会生成错误:

Unhandled exception at line 127, column 17 in 
http://localhost:62114/js/admin.js
0x800a138f - JavaScript runtime error: Unable to get property 'offsetTop' of 
undefined or null reference

我在哪里定义'offsetTop'?还有其他方法可以解决这个错误吗?我猜测,如果我试图破解它,我只会得到另一个错误来处理,并希望正确解决它。

这是否意味着它试图在共享布局中加载此视图,该视图需要在某处定义值?除了MainMenu上的workorders / index之外,我没有看到workorders / index和workorders / create之间有任何区别。

我看到模板附带的页面都有自己的js文件,我是否需要为我添加的所有视图创建类似的js文件?

1 个答案:

答案 0 :(得分:0)

您不需要为添加的所有视图创建js文件。

admin.js中更改此内容:

var activeItemOffsetTop = $('.menu .list li.active')[0].offsetTop
if (activeItemOffsetTop > 150) $el.slimscroll({ scrollTo: activeItemOffsetTop + 'px' });

到此:

var $activeItem = $('.menu .list li.active')[0];
if ($activeItem.length) {
    var activeItemOffsetTop = $activeItem.offsetTop;
    if (activeItemOffsetTop > 150) $el.slimscroll({ scrollTo: activeItemOffsetTop + 'px' });

这是处理主菜单上没有自己的菜单项的页面所必需的。