Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net mvc post action post nothing_C#_Asp.net Mvc - Fatal编程技术网

C# asp.net mvc post action post nothing

C# asp.net mvc post action post nothing,c#,asp.net-mvc,C#,Asp.net Mvc,我的行动方法: [HttpPost, ActionName("Delete")] [RequiredPermissions(RequiredPermissionName, Operation.Delete)] public ActionResult DeleteConfirmed(User userWhoGone) { _db.Users.Remove(userWhoGone); _db.SaveChanges();

我的行动方法:

    [HttpPost, ActionName("Delete")]
    [RequiredPermissions(RequiredPermissionName, Operation.Delete)]
    public ActionResult DeleteConfirmed(User userWhoGone)
    {
        _db.Users.Remove(userWhoGone);
        _db.SaveChanges();

        this.TempData["msg"] = "Deleted User Id " + userWhoGone.Id;
        return RedirectToAction("Index");
    }
Delete.cshtml

@model NewsMonitoringWeb.Database.Models.User
@{
    ViewBag.Title = "User Delete";

<h2>User Delete</h2>
<h3>Are you sure you want to delete this user?</h3>

@Html.Partial("_PartialUser")

@using (Html.BeginForm()) {
    <p>
        <input type="submit" value="Delete" /> |
        @Html.ActionLink("Back to List", "Index")
    </p>
}
@model NewsMonitoringWeb.Database.Models.User
@{
    ViewBag.Title = "User Delete";

<h2>User Delete</h2>
<h3>Are you sure you want to delete this user?</h3>

@Html.Partial("_PartialUser")

@using (Html.BeginForm()) {
    <p>
        @Html.HiddenFor(m => m.Id) @* <--- New input *@
        <input type="submit" value="Delete" /> |
        @Html.ActionLink("Back to List", "Index")
    </p>
}
_PartialUser.cshtml

@model NewsMonitoringWeb.Database.Models.User

<fieldset>
    <legend>User</legend>

    <div class="display-label">User Role</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.UserRole.Name)

    </div>

    <div class="display-label">FirstName</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.FirstName)
    </div>

    <div class="display-label">LastName</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.LastName)
    </div>

    <div class="display-label">Email</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Email)
    </div>

    <div class="display-label">Is Contributor</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.IsContributor)
    </div>
</fieldset>
我使用chrome检查发布的数据,发现这个方法没有向服务器发布任何内容


有什么建议吗?

您目前根本没有发回任何内容。您的用户不在表单中

表单中唯一的东西是按钮和链接

您需要移动您的分部,使其位于表单中

现在看起来是这样的:

@model NewsMonitoringWeb.Database.Models.User
@{
ViewBag.Title = "User Delete";

<h2>User Delete</h2>
<h3>Are you sure you want to delete this user?</h3>



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

您需要将隐藏输入添加到包含用户ID的部分,或者将该部分保留在原来的位置,然后将隐藏输入放入表单中


然后,您需要更改操作以接受用户ID并在数据库上执行查找。

您的表单没有可回发的值。您需要在表单中放置一些隐藏的输入值以生成用户,或者向表单中添加一个隐藏的用户id并更改post操作方法

后者是我的首选方法,如下所示:

[HttpPost, ActionName("Delete")]
[RequiredPermissions(RequiredPermissionName, Operation.Delete)]
public ActionResult DeleteConfirmed(int userIdWhoGone)
{

    _db.Users.RemoveById(userIdWhoGone); // You may need to create this.
    // Atlernatively, get the user by id then call 'Remove()
    var user = _db.User.Find(userIdWhoGone);
    _db.Users.Remove(user);


    _db.SaveChanges();

    this.TempData["msg"] = "Deleted User Id " + userIdWhoGone;
    return RedirectToAction("Index");
}
Delete.cshtml

@model NewsMonitoringWeb.Database.Models.User
@{
    ViewBag.Title = "User Delete";

<h2>User Delete</h2>
<h3>Are you sure you want to delete this user?</h3>

@Html.Partial("_PartialUser")

@using (Html.BeginForm()) {
    <p>
        <input type="submit" value="Delete" /> |
        @Html.ActionLink("Back to List", "Index")
    </p>
}
@model NewsMonitoringWeb.Database.Models.User
@{
    ViewBag.Title = "User Delete";

<h2>User Delete</h2>
<h3>Are you sure you want to delete this user?</h3>

@Html.Partial("_PartialUser")

@using (Html.BeginForm()) {
    <p>
        @Html.HiddenFor(m => m.Id) @* <--- New input *@
        <input type="submit" value="Delete" /> |
        @Html.ActionLink("Back to List", "Index")
    </p>
}

您可能需要提供视图的标记…是否在发布到方法时遇到问题?您能否向我们展示正在进行发布的表单代码以及如何解析用户参数?这将不起作用,因为局部视图只有显示元素。