我是MVC的新手,我正在学习NerdDinner的代码。
查看:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<NerdDinner.Models.Dinner>" %>
<asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server">
Delete Confirmation: <%:Model.Title %>
</asp:Content>
<asp:Content ID="Main" ContentPlaceHolderID="MainContent" runat="server">
<h2>
Delete Confirmation
</h2>
<div>
<p>Please confirm you want to cancel the dinner titled:
<i> <%:Model.Title %>? </i> </p>
</div>
<% using (Html.BeginForm()) { %>
<input name="confirmButton" type="submit" value="Delete" />
<% } %>
</asp:Content>控制器:
[HttpPost, Authorize]
public ActionResult Delete(int id, string confirmButton) {
Dinner dinner = dinnerRepository.GetDinner(id);
if (dinner == null)
return View("NotFound");
if (!dinner.IsHostedBy(User.Identity.Name))
return View("InvalidOwner");
dinnerRepository.Delete(dinner);
dinnerRepository.Save();
return View("Deleted");
}控制器如何获取要删除的项的ID?视图上似乎没有任何内容包含要传递给控制器的ID。
发布于 2012-11-21 15:36:32
using (Html.BeginForm())将呈现一个HTML元素,该元素的action属性缺省为当前URI。
这意味着如果您当前使用的是/Dinner/Delete/5,则表单将发送到该URI,并且常规模型绑定将开始发挥作用,将5映射到{id}路由参数。
https://stackoverflow.com/questions/13488336
复制相似问题