异常The following attributes are mutually exclusive: asp-route asp-controller, asp-action asp-page, asp-page-handler

使用最新的.net6 开发mvc的应用程序,自动生成代码的功能还是那么方便。不过跟之前的自动生成的代码有了一些变动。

<td>
                <a asp-action="Edit" asp-route-id="@item.Id">修改</a> |
                <a asp-action="Details" asp-route-id="@item.Id">详情</a> |
                <a asp-route="news" asp-controller=“news” asp-action="index" id="@item.Id">新闻点</a>
                <a asp-action="Delete" asp-route-id="@item.Id">删除</a>
            </td>

我当前是在usercontroller的试图下,想要在这里跳转到另外一个action的index中,于是在自动生成的代码中加了一句。

大家看第二行代码 他自动生成的代码中指定了asp-action和aps-route-id

他们分别是跳转的action和跳转的参数id

如果我想跳转到另一个controller中,是不是指定route 为news就行了呢,写完以后运行代码,系统提示了这样的错误:

InvalidOperationException: Cannot determine the 'href' attribute for <a>. The following attributes are mutually exclusive: asp-route asp-controller, asp-action asp-page, asp-page-handler

意思是 以下的这些属性是互斥的:

asp-route asp-controller, asp-action asp-page, asp-page-handler

就是说

asp-route asp-controller不能同时指定, asp-action asp-page不能同时指定。

明白了原因就好办了。

在代码中把asp-toute属性去掉

<td>
                <a asp-action="Edit" asp-route-id="@item.Id">修改</a> |
                <a asp-action="Details" asp-route-id="@item.Id">详情</a> |
                <a asp-controller="news" asp-action="index" id="@item.Id">新闻点</a>
                <a asp-action="Delete" asp-route-id="@item.Id">删除</a>
            </td>

然后运行程序,不再有异常。OK,问题解决。

posted @ 2021-12-26 10:48  kdkler  阅读(115)  评论(0编辑  收藏  举报
我的博客   我的时间线   自定义科技