ASP MVC3链接到另一个View / Controller?

时间:2013-01-24 20:59:36

标签: asp.net-mvc asp.net-mvc-3

创建从一个控制器视图导航到另一个控制器视图的链接的语法是什么?以下是允许用户从Index.cshtml视图的FollowUpItems导航到Details.cshtml视图的Agent的代码。我需要传递item.Key1的值,以便Details.cshtml页面准确知道要显示的内容。

我收到以下错误,我不知道这意味着什么(我为任何缺乏信息道歉,我仍然是ASP MVC的新手):

'参数字典包含'Monet.Controllers.FollowUpController'中方法'System.Web.Mvc.ViewResult Details(Int32)'的非可空类型'System.Int32'的参数'id'的空条目。可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数'

    <td>
        @Html.ActionLink(item.Key1, "Details", "Agent", new { id = item.Key1 })
    </td>

以下是我尝试导航到的页面的Index()方法标题:

    public ActionResult Index(string searchString, string sortOrder, string currentFilter, int? page)
    {

3 个答案:

答案 0 :(得分:5)

试试这个overload

@Html.ActionLink(item.Key1, "Details", "Agent", new { id = item.Key1 },null)

第三个参数是routevalues,第四个参数是html attrubutes。如果你想让你的链接有一些html属性,你可以删除带有一些html attrubtes的null,就像这样

@Html.ActionLink(item.Key1, "Details", "Agent",
                           new { id = item.Key1 }, new { class="myCssClass})

Here是所有可用重载的完整列表。

答案 1 :(得分:1)

只需删除新的{id = item.key1} 做那样的事情。

  @Html.ActionLink(item.Key1, "Details", "Agent");

或者你可以通过将key1的类型更改为int?

来实现

答案 2 :(得分:0)

我建议您使用T4MVC ,然后您可以使用以下内容: @Url.Action(MVC.MyCOntroller.MyMethod()

希望这会有所帮助。