我有两个控制器:HomeController
和DocGenController
。 HomeController
是我项目中的默认控制器。我想打开按钮,点击我DocGenController
中的一个功能。例如:我在我的页面上创建了一个顶部导航。我使用此代码打开DocGen.cshtml
- 页面(通过控制器HomeController
):@Html.ActionLink("Generator", "DocGen", "Home")
。
好的,现在我尝试了这个:@Html.ActionLink("Add Value", "AddValue", "DocGen", new { @class = "btn btn-primary" })
但我每次都会收到此错误:The resource (/Home/AddValue) can be not found (Error: 404)
。
为什么他试图打开/ Home / AddValue?!
如何使用DocGenController?
感谢您的帮助
答案 0 :(得分:2)
如果您还想要,也可以使用HTML <a>
- 标记,并在href
中添加:href='@Url.Action("AddValue", "DocGen")'
所以完整的<a>
将是:
<a href='@Url.Action("AddValue", "DocGen")' class="btn btn-primary">Add Value</a>
答案 1 :(得分:1)
您正在使用Action Link方法的错误重载,如下所示: https://msdn.microsoft.com/en-us/library/system.web.mvc.html.linkextensions.actionlink(v=vs.118).aspx
包括控制器名称在内的最简单方法的签名是:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
string controllerName,
object routeValues,
object htmlAttributes
)
这意味着您需要为您的通话提供一个或多个对象,并使用:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
string controllerName
)
例如:@Html.ActionLink("Add Value", "AddValue", "DocGen")
应该完成工作或:
@Html.ActionLink("Add Value", "AddValue", "DocGen", new{}, new { @class = "btn btn-primary" })
在params对象中你可能想传递一些id或确认:)