私がしようとしているのは、すべてのレコードをリストアップしてから、レコードを削除するオプションを提供することです。ユーザーがインデックスページのリンクの削除をクリックすると、削除確認ページ(MVCフレームワークによって作成されたビューの削除)にリダイレクトされます。削除ビューで[送信]ボタンをクリックすると、コントローラの削除アクションが表示されますオブジェクトを削除する必要があります。しかし、問題はオブジェクトを取得することですが、すべてのプロパティはnullに設定されています。以下はMVC削除ビューを使用してレコードを削除する
コードです:
//GET
public ActionResult DeleteUser (long id)
{
return View(_repository.GetUserById(id));
}
//POST
[HttpPost]
public ActionResult DeleteUser (UserDTO user)
{
_repository.DeleteUser(user.UserId);
/
return RedirectToAction("Index");
}
私は1つを提出することを期待していたがセカンド(HttpPost)メソッドが呼び出され、ユーザーは値が入りますが、それは起きていないクリックされます。..
私は何をしているのですか?
これはあなたのプロパティは、フォームポストのaoutである私の削除コードの表示
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<RepositoryPatternSample.DTOs.UserDTO>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
DeleteUser
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>DeleteUser</h2>
<h3>Are you sure you want to delete this?</h3>
<fieldset>
<legend>UserDTO</legend>
<div class="display-label">UserId</div>
<div class="display-field"><%: Model.UserId %></div>
<div class="display-label">Username</div>
<div class="display-field"><%: Model.Username %></div>
<div class="display-label">FirstName</div>
<div class="display-field"><%: Model.FirstName %></div>
<div class="display-label">LastName</div>
<div class="display-field"><%: Model.LastName %></div>
</fieldset>
<% using (Html.BeginForm()) { %>
<p>
<input type="submit" value="Delete User" /> |
<%: Html.ActionLink("Back to List", "Index") %>
</p>
<% } %>
</asp:Content>
だろうのような 何かがあなたのビューのマークアップ+コードを表示します。あなたのDTOと同じ名前の値をポストバックしていないか、あなたのDTOが設定可能なプロパティなどを持っていないように思えます。 – Tejs