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

How do I link from one view to another when using aspnetboilerplate?

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

我有一个页面,'WorkOrders' (workorders/index),它显示工作订单列表。有一个用于创建新工作订单的 link,它应该转到 'Create'(workorders/create,我还需要让 workorders/create/customerid 工作)页面。

<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'?还有其他方法可以解决此错误吗?我猜如果我试图破解它,我只会得到另一个错误来处理并希望正确解决它。

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

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

您不需要为添加的所有视图创建 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' });

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