MVC将ID从视图传递到控制器

时间:2013-11-08 14:13:16

标签: asp.net-mvc razor

如果我在视图中有以下内容

@Html.DisplayFor(model => model.sLevelid) 

Controller 
Public actionresult GetName(int id)
{


}

如何将id传递给控制器​​,以便创建linq查询以获取id属于数据库中单独表的名称? 提前谢谢

2 个答案:

答案 0 :(得分:2)

您认为这样的事情:

// GetName here refers to the name of the action on your controller
@{ Html.RenderAction("GetName", new { id = @Model.sLevelid }); }

然后您的控制器操作将如下所示:

public PartialViewResult GetName(int id)
{
    var model = // Use Linq to get whatever you need by the id

    return PartialView("_GetName", model);
}

然后,您可以在~/Views/Shared/文件夹中创建部分视图,并为其指定名称_GetName.cshtml。那个观点看起来像这样:

@model TheTypeOfModelGetNameReturns

<div>@Model.SomeProperty</div>

答案 1 :(得分:0)

我相信如果你在Controller方法签名中使用名称“sLevelid”,它将会起作用:

Public actionresult GetName(int sLevelid)

然后您可以使用此id来查找具有linq查询的对象。这是因为表单post中的名称与签名中的int名称匹配,因此框架会自动将其绑定到int变量。

另外,检查View是否被称为“GetName.cshtml”,因为它必须与方法的名称匹配,在正常情况下。