Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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
Asp.net mvc 编辑页面Post方法中视图模型的处理_Asp.net Mvc_Viewmodel - Fatal编程技术网

Asp.net mvc 编辑页面Post方法中视图模型的处理

Asp.net mvc 编辑页面Post方法中视图模型的处理,asp.net-mvc,viewmodel,Asp.net Mvc,Viewmodel,我正在尝试修改“活动编辑”页面,以便能够包含更多信息。 为了简化,我有以下几点 模型 看法 现在所有内容都显示正确,但我无法更新信息。 db.SaveChanges处出错 Store update、insert或delete语句影响了意外的行数0。自加载实体后,实体可能已被修改或删除 我不知道如何更新控制器部分的代码。有什么想法吗?您可能绑定到了null。尝试: 您需要修改类活动以指定可绑定属性,如下所示: [Bind(Include = "ActNo,ActName")] public cla

我正在尝试修改“活动编辑”页面,以便能够包含更多信息。 为了简化,我有以下几点

模型

看法

现在所有内容都显示正确,但我无法更新信息。 db.SaveChanges处出错

Store update、insert或delete语句影响了意外的行数0。自加载实体后,实体可能已被修改或删除

我不知道如何更新控制器部分的代码。有什么想法吗?

您可能绑定到了null。尝试:


您需要修改类活动以指定可绑定属性,如下所示:

[Bind(Include = "ActNo,ActName")]
public class Activity
{
    public int ActNo { get; set; }
    public string ActName { get; set; }
    public virtual ICollection<Attendance> Attendances { get; set; }
}
public class ActivityEditView
{
    public Activity SelectedActivity { get; set; }
    public Student Students { get; set; }
}
@model <projectname>.ViewModels.ActivityEditView
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        @Html.HiddenFor(model => model.SelectedActivity.ActNo)

        <div class="form-group">
            @Html.LabelFor(model => model.SelectedActivity.ActName, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.SelectedActivity.ActName, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.SelectedActivity.ActName, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </div>
    </div>
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit([Bind(Include = "ActNo,ActName")] Activity activity)
    {
        if (ModelState.IsValid)
        {
            db.Entry(activity).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(activity);
    }
[Bind(Prefix = "SelectedActivity")]Activity activity
[Bind(Include = "ActNo,ActName")]
public class Activity
{
    public int ActNo { get; set; }
    public string ActName { get; set; }
    public virtual ICollection<Attendance> Attendances { get; set; }
}
[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit(ActivityEditView activityEdit)
    {
        if (ModelState.IsValid)
        {
            db.Entry(activityEdit.SelectedActivity).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(activity);
    }