【问题标题】:I cant receive ActionLink Parameters in controller?我无法在控制器中接收 ActionLink 参数?
【发布时间】:2015-06-11 16:11:31
【问题描述】:

我在一个 C# MVC .Net web 项目中工作,我使用了一个带有参数的 ActionLink,但我无法将它读入控制器。

动作链接:

@model IEnumerable<FINAL.Models.Medico>

@foreach (var item in Model) 
{
    @Html.ActionLink("Eliminar", "DeleteMedico", new { id = item.NOMBRE.ToString() })
}

这是我尝试阅读它的方式:

public ActionResult DeleteMedico(String elmedico) 
{
    //This WRITE is returning null. :(
    System.Diagnostics.Debug.WriteLine("ELMEDICO:" + elmedico);
    return View();    
}

我是 MVC .NET 开发的新手,所以我需要你的帮助。

谢谢。

【问题讨论】:

    标签: c# asp.net-mvc html.actionlink


    【解决方案1】:

    根据控制器的预期参数,您的参数命名不正确。

    要么重命名被传递的参数:

    @Html.ActionLink("Eliminar", "DeleteMedico", new { elmedico = item.NOMBRE.ToString() })
    

    或者将控制器的参数重命名为id:

    public ActionResult DeleteMedico(String id) 
    {
        System.Diagnostics.Debug.WriteLine("ELMEDICO:" + id);
        return View();
    }
    

    【讨论】:

    • 谢谢,我现在明白了这部分语法,只有一件事......它起初确实有效,我需要在new { elmedico = item.NOMBRE.ToString() }, null中添加一个null
    • 另外,我不能传递整个item 对象?因为当我这样做时,我在尝试在代码中使用它时收到 NULLReferenceException。
    • 可能需要空值来选择ActionLink 的正确重载。至于项目,不建议传递整个对象,因为它最终都会出现在查询字符串中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 2015-01-08
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多