将模型从视图(通过 ActionLink )传递到操作
Passing a model from a view (through ActionLink ) to an action
我正在通过一个小型项目学习 .net MVC,我在该项目中调用一个视图,该视图显示传递给它的模型的详细信息。现在我也有一些模型按钮(编辑、删除等)。我想知道我是否可以通过 ActionLink 将模型直接传递给其控制器中的一个动作,以便该动作可以调用另一个视图来编辑该模型的细节。
这是我正在使用的视图::
@model MvcBooksList.Models.Book
@{
ViewData["Title"] = "Book Details";
}
@if (Model != null)
{
<div>
<div>
@Html.DisplayNameFor(model => model.BookName)
@Html.DisplayFor(model => model.BookName)
</div>
<div>
@Html.DisplayNameFor(model => model.Author)
@Html.DisplayFor(model => model.Author)
</div>
<div>
@Html.DisplayNameFor(model => model.Publisher)
@Html.DisplayFor(model => model.Publisher)
</div>
<div>
@Html.DisplayNameFor(model => model.Price)
@Html.DisplayFor(model => model.Price)
</div>
<div>
@Html.DisplayNameFor(model => model.Pages)
@Html.DisplayFor(model => model.Pages)
</div>
<div>
@Html.DisplayNameFor(model => model.Category)
@Html.DisplayFor(model => model.Category)
</div>
<div>
@Html.DisplayNameFor(model => model.Subcategory)
@Html.DisplayFor(model => model.Subcategory)
</div>
<div>
@Html.DisplayNameFor(model => model.AddedBy)
@Html.DisplayFor(model => model.AddedBy)
</div>
<div>
@Html.DisplayNameFor(model => model.ModifiedBy)
@Html.DisplayFor(model => model.ModifiedBy)
</div>
<div>
@Html.DisplayNameFor(model => model.AddedOn)
@Html.DisplayFor(model => model.AddedOn)
</div>
<div>
@Html.DisplayNameFor(model => model.LastModifiedOn)
@Html.DisplayFor(model => model.LastModifiedOn)
</div>
<div>
@Html.ActionLink("Edit", "Edit", }) | // CAN I PASS MODEL HERE WHICH IS PASSED
@Html.ActionLink("Delete", "Delete", }) | //TO THIS VIEW
@Html.ActionLink("Delist", "Delist", }) |
@Html.ActionLink("Cancel", "Cancel")
</div>
</div>
}
else
{
<h3>No Book with that Name</h3>
}
您不需要将完整的模型传递给编辑或删除视图,这是一种矫枉过正的做法。只需通过在操作中发送路由值 link.
将书的 ID 传递给那些视图
@Html.ActionLink("Edit","Edit",new{id=bookid})
这里bookid是书的id。请记住在您的编辑操作方法中使用 id 作为参数。
public ActionResult Edit(int id)
我正在通过一个小型项目学习 .net MVC,我在该项目中调用一个视图,该视图显示传递给它的模型的详细信息。现在我也有一些模型按钮(编辑、删除等)。我想知道我是否可以通过 ActionLink 将模型直接传递给其控制器中的一个动作,以便该动作可以调用另一个视图来编辑该模型的细节。 这是我正在使用的视图::
@model MvcBooksList.Models.Book
@{
ViewData["Title"] = "Book Details";
}
@if (Model != null)
{
<div>
<div>
@Html.DisplayNameFor(model => model.BookName)
@Html.DisplayFor(model => model.BookName)
</div>
<div>
@Html.DisplayNameFor(model => model.Author)
@Html.DisplayFor(model => model.Author)
</div>
<div>
@Html.DisplayNameFor(model => model.Publisher)
@Html.DisplayFor(model => model.Publisher)
</div>
<div>
@Html.DisplayNameFor(model => model.Price)
@Html.DisplayFor(model => model.Price)
</div>
<div>
@Html.DisplayNameFor(model => model.Pages)
@Html.DisplayFor(model => model.Pages)
</div>
<div>
@Html.DisplayNameFor(model => model.Category)
@Html.DisplayFor(model => model.Category)
</div>
<div>
@Html.DisplayNameFor(model => model.Subcategory)
@Html.DisplayFor(model => model.Subcategory)
</div>
<div>
@Html.DisplayNameFor(model => model.AddedBy)
@Html.DisplayFor(model => model.AddedBy)
</div>
<div>
@Html.DisplayNameFor(model => model.ModifiedBy)
@Html.DisplayFor(model => model.ModifiedBy)
</div>
<div>
@Html.DisplayNameFor(model => model.AddedOn)
@Html.DisplayFor(model => model.AddedOn)
</div>
<div>
@Html.DisplayNameFor(model => model.LastModifiedOn)
@Html.DisplayFor(model => model.LastModifiedOn)
</div>
<div>
@Html.ActionLink("Edit", "Edit", }) | // CAN I PASS MODEL HERE WHICH IS PASSED
@Html.ActionLink("Delete", "Delete", }) | //TO THIS VIEW
@Html.ActionLink("Delist", "Delist", }) |
@Html.ActionLink("Cancel", "Cancel")
</div>
</div>
}
else
{
<h3>No Book with that Name</h3>
}
您不需要将完整的模型传递给编辑或删除视图,这是一种矫枉过正的做法。只需通过在操作中发送路由值 link.
将书的 ID 传递给那些视图@Html.ActionLink("Edit","Edit",new{id=bookid})
这里bookid是书的id。请记住在您的编辑操作方法中使用 id 作为参数。
public ActionResult Edit(int id)