C# 我们可以隐式地传递HttpGet查询字符串吗
因此,我使用数据库优先和实体框架方法创建了MVC4应用程序。我创建了各自的模型、控制器和视图(通过使用实体框架模板添加具有读/写操作和视图的MVC控制器)。因此,它附带了创建、删除、编辑、索引和详细信息视图以及相应的操作方法。 当我单击“详细信息”、“编辑”或“删除”时,我看到作为action方法中的参数的位置id未随值传递,因此仅使用默认值0。我了解到,使用HttpGet,我们需要在URL中将其作为查询字符串传递,但在我的例子中,如何隐式传递位置ID以进行编辑/详细信息或删除。您可以这样做: 视图:C# 我们可以隐式地传递HttpGet查询字符串吗,c#,asp.net-mvc-4,query-string,model-binding,http-get,C#,Asp.net Mvc 4,Query String,Model Binding,Http Get,因此,我使用数据库优先和实体框架方法创建了MVC4应用程序。我创建了各自的模型、控制器和视图(通过使用实体框架模板添加具有读/写操作和视图的MVC控制器)。因此,它附带了创建、删除、编辑、索引和详细信息视图以及相应的操作方法。 当我单击“详细信息”、“编辑”或“删除”时,我看到作为action方法中的参数的位置id未随值传递,因此仅使用默认值0。我了解到,使用HttpGet,我们需要在URL中将其作为查询字符串传递,但在我的例子中,如何隐式传递位置ID以进行编辑/详细信息或删除。您可以这样做:
列表视图模板的链接是使用@Html.ActionLink创建的,对吗?如果是这样,它们必须分别包含它们想要明确指向的项Id,因此它们应该类似于 @ActionLink(“编辑”,新的{id=item.id})) 如果使用默认路线,则这是正确的
顺便说一句,我很惊讶这些链接在列表模板中默认不包含正确的Id设置。默认情况下,它们不包含它,现在我传递了新的{Id=item.LocationId},它可以工作了
foreach (var item in Model)
{
<tr>
<td>
@Html.ActionLink("Edit", "EditAction", new {id = item._account})
</td>
<td>
@Html.ActionLink("Details", "DetailsAction", new {id = item._account})
</td>
<td>
@Html.ActionLink("Delete", "DeleteAction", new {id = item._account})
</td>
</tr>
}
//
// GET: /Controller/EditAction/id
public ActionResult EditAction(int id)
{
//Do Something
}
//
// GET: /Controller/DetailsAction/id
public ActionResult DetailsAction(int id)
{
//Do Something
}
//
// GET: /Controller/DeleteAction/id
public ActionResult DeleteAction(int id)
{
//Do Something
}