문제

I am coding an MVC web application in C#.

How do I call an action on a controller from a view, where the action is not in the controller that loaded the view?

@Html.ActionLink("Edit", "Edit", new { id=item.BookID }) |
@Html.ActionLink("Details", "Details", new { id=item.BookID }) |
@Html.ActionLink("Add Comment","Create", "CommentController", new { bookid=item.BookID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.BookID })

The above code is loaded from a Book controller. I am wanting to call the "Create" action in the CommentController (see line 3 of my above code).

When I click on the above code, the following page is linked to: serveraddress/Book/Create?Length=17

I am trying to link to: serveraddress/Comment/Create?Length=17

도움이 되었습니까?

해결책

The problem is that you are using the wrong overload. Replace...

@Html.ActionLink("Add Comment","Create", "CommentController", new { bookid=item.BookID })

with...

@Html.ActionLink("Add Comment","Create", "CommentController", new { bookid=item.BookID }, null)

I only added null to the end of the parameter list

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top