将模型从视图(通过 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)