【问题标题】:Why doesnt my @html.actionlink go to the correct link?为什么我的@html.actionlink 没有转到正确的链接?
【发布时间】:2013-05-06 08:43:26
【问题描述】:

我无法访问正确的链接。当我试图转到模板文件夹中的索引视图时,它会转到管理文件夹中的索引视图,我不明白为什么当代码说它应该在这个特定文件夹中查找这个视图时:

<fieldset>

<legend>SiteConfig</legend>
<p>Create new or edit Customers, Projects etc:   
    @Html.ActionLink("Create", "Add", "Admin", string.Empty) |
    @Html.ActionLink("Edit", "AddEdit", "Admin", string.Empty)
</p>
<p>Create new or edit Users:
    @Html.ActionLink("Create", "Add", "Admin", string.Empty) |
    @Html.ActionLink("Edit", "AddEdit", "Admin", string.Empty)
</p>
<p>Upload or change Logo:
    @Html.ActionLink("Upload", "Add", "Admin", string.Empty) |
    @Html.ActionLink("Change", "AddEdit", "Admin", string.Empty)
</p>
<p>Upload or change Template:
    @Html.ActionLink("Upload", "Index", "Template", string.Empty) |
    @Html.ActionLink("Change", "AddEdit", "Admin", string.Empty)
</p>
</fieldset>

【问题讨论】:

    标签: asp.net-mvc view html.actionlink


    【解决方案1】:

    您很可能调用了错误的重载。 string.Empty 是干什么用的?

    Admin 是控制器吗,如果是,那么您可以简单地做一个

    @Html.ActionLink("Create", "Add", "Admin") 
    

    您是否要在链接中添加一些 html 样式,然后执行此操作

    @Html.ActionLink("Create", "Add", "Admin", new { @class = "some-class-name"} ) 
    

    你是否尝试传递一些参数

    @Html.ActionLink("Create", "Add", "Admin", new { @id = 5}, null ) 
    

    【讨论】:

    • 不知道我的大学为什么使用 string.empty,但它使用普通 而不是 actionlink
    • 它肯定会与 href 一起使用,我认为只要 url 当然是正确的就可以了。因此,对于您的问题,如果 Admin 是控制器而 Add 是方法,那么只需删除 string.Empty - 它没有任何用途。如果您的同事问您为什么删除它,然后问他为什么首先添加它-然后一切都会被清除;)
    【解决方案2】:

    您的问题并不完全清楚,但对于您提供的链接,始终将Admin 设置为控制器名称(第三个参数)。因此,在您的所有链接中,Admin 控制器中将调用 AddAddEdit 方法,因此将始终使用 Views/Admin 文件夹中的 AddAddEdit 模板。

    【讨论】:

    • Andras 所说的实际上是正确的 actionlink 的语法是 {"string text","Action ","Controller",{Parameters}}。同样,当我尝试转到另一个传递参数的控制器时,我总是在末尾添加一个 null 参数。只需添加信息以防您也遇到它。
    猜你喜欢
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 2021-05-27
    • 2013-08-19
    • 2017-10-30
    • 2021-04-28
    相关资源
    最近更新 更多