📜  通过 actionlink 传递对象 (1)

📅  最后修改于: 2023-12-03 14:58:02.192000             🧑  作者: Mango

当使用 ASP.NET MVC 的 ActionLink 方法传递对象时,需要使用路由值或查询字符串来实现。以下是一个示例,展示如何通过 ActionLink 传递一个对象。

首先,创建一个具有以下属性的Person类(简化示例):

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

接下来,在控制器中创建一个Action,该Action接受Person对象作为参数:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Details(Person person)
    {
        return View(person);
    }
}

然后,在视图中使用ActionLink方法传递Person对象:

@{
    var person = new Person { Name = "John", Age = 30 };
    var linkText = "View Details";
    var actionName = "Details";
    var controllerName = "Home";
    var routeValues = new { person.Name, person.Age };
}

@Html.ActionLink(linkText, actionName, controllerName, routeValues, null)

上述代码中,我们创建了一个Person对象,并将其属性作为路由值传递给Details Action。ActionLink 方法会生成一个链接,点击链接后会将Person对象传递给Details Action。

请注意,上述示例中使用了匿名对象作为路由值。根据你的具体需求,你也可以将其替换为自定义的RouteValueDictionary。

最后,接口所请求的目标Action将接收到Person对象,并将其传递给相应的视图进行显示。例如,在Details视图中,可以这样显示Person对象:

@model Person

# Person Details
Name: @Model.Name
Age: @Model.Age

请注意,此示例中使用了Markdown格式进行说明。你可以使用Markdown标记将代码片段显示为代码块,提供更好的可读性和引用。