加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.NET MVC删除视图 – 如何工作

发布时间:2020-12-16 01:57:36 所属栏目:百科 来源:网络整理
导读:这是一个简单的代码简单的问题,我只想详细说明我的理解. ASP.NET MVC应用程序的标准生成视图将具有删除视图,其结尾如下所示 – @using (Html.BeginForm()) { @Html.AntiForgeryToken() p input type="submit" value="Delete" / | @Html.ActionLink("Back to
这是一个简单的代码简单的问题,我只想详细说明我的理解.

ASP.NET MVC应用程序的标准生成视图将具有删除视图,其结尾如下所示 –

@using (Html.BeginForm()) {
    @Html.AntiForgeryToken()
    <p>
        <input type="submit" value="Delete" /> |
        @Html.ActionLink("Back to List","Index")
    </p>
}

控制器方法是标准的 –

public ActionResult Delete(int addressID)
    {
        Address address = db.Address.Find(addressID);
        if (address == null)
        {
            return HttpNotFound();
        }
        return View(address);
    }

    [HttpPost,ActionName("Delete")]
    [ValidateAntiForgeryToken]
    public ActionResult DeleteConfirmed(int addressID)
    {
        Address address = db.Address.Find(addressID);
        db.Address.Remove(address);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

这产生的HTML看起来像 –

<form action="/Address/Delete?AddressID=2" method="post">    
<input name="__RequestVerificationToken" type="hidden" value="...snip..." />    <p>
        <input type="submit" value="Delete" /> |
        <a href="/Address">Back to List</a>
    </p>
</form>

正如您所看到的,AddressID包含在表单操作中,但我没有“做”任何事情来将其放在那里.我刚送了包模型.

AddressID如何进入表单操作?

解决方法

这是由于您的方法签名导致的自动映射和asp.net路由.

public ActionResult Delete(int addressID)
public ActionResult DeleteConfirmed(int addressID)

有关详细信息,请参阅Controllers and Action Methods in ASP.NET MVC Applications的“自动映射操作 – 方法参数”部分以及有关路由ASP.NET Routing的详细信息

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读