MVC 4创建操作无法正常工作

时间:2013-11-18 02:08:56

标签: asp.net-mvc asp.net-mvc-4 razor

当我尝试创建一个新项目时,它返回一个带有链接
的索引操作 /培训/创建。我知道编辑,删除和详细信息正常工作 - 并且项目中的任何创建操作都会出现同样的问题。

我无法理解这里发生了什么。

控制器:

public class TrainingController : Controller
{
    private CouncilDb db = new CouncilDb();     
    public ActionResult Top3Training() 
    {
        var model = db.Training.ToList().Take(3);
        return PartialView(model);
    }

    public ActionResult Index()
    {
        return View(db.Training.ToList());
    }

    public ActionResult Details(int id = 0)
    {
        Training training = db.Training.Find(id);
        if (training == null)
        {
            return HttpNotFound();
        }
        return View(training);
    }

    public ActionResult Create()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Create(Training training)
    {
        if (ModelState.IsValid)
        {
            db.Training.Add(training);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(training);
    }

    public ActionResult Edit(int id = 0)
    {
        Training training = db.Training.Find(id);
        if (training == null)
        {
            return HttpNotFound();
        }
        return View(training);
    }

    [HttpPost]
    public ActionResult Edit(Training training)
    {
        if (ModelState.IsValid)
        {
            db.Entry(training).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(training);
    }

    public ActionResult Delete(int id = 0)
    {
        Training training = db.Training.Find(id);
        if (training == null)
        {
            return HttpNotFound();
        }
        return View(training);
    }

    [HttpPost, ActionName("Delete")]
    public ActionResult DeleteConfirmed(int id)
    {
        Training training = db.Training.Find(id);
        db.Training.Remove(training);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    protected override void Dispose(bool disposing)
    {
        db.Dispose();
        base.Dispose(disposing);
    }
}

创建视图:

@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_NoSideBar.cshtml";
}

<h2>Create</h2>

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

<fieldset>
    <legend>Training</legend>
    <div class="editor-label">
        @Html.LabelFor(model => model.title)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.title)
        @Html.ValidationMessageFor(model => model.title)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.Desc)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Desc)
        @Html.ValidationMessageFor(model => model.Desc)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.imagePath)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.imagePath)
        @Html.ValidationMessageFor(model => model.imagePath)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.trainer)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.trainer)
        @Html.ValidationMessageFor(model => model.trainer)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.cost)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.cost)
        @Html.ValidationMessageFor(model => model.cost)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.place)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.place)
        @Html.ValidationMessageFor(model => model.place)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.Target_participant)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Target_participant)
        @Html.ValidationMessageFor(model => model.Target_participant)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.organizer)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.organizer)
        @Html.ValidationMessageFor(model => model.organizer)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.website)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.website)
        @Html.ValidationMessageFor(model => model.website)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.Tel)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Tel)
        @Html.ValidationMessageFor(model => model.Tel)
    </div>
    <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>
}

<div>
     @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

型号:

public class Training
{
    public int id { get; set; }
    public string title { get; set; }
    public string Desc { get; set; }
    public string imagePath { get; set; }
    public string trainer { get; set; }
    public int cost { get; set; }
    public string place { get; set; }
    public string Target_participant { get; set; }
    public string organizer { get; set; }
    public string website { get; set; }
    public int Tel { get; set; }
}

0 个答案:

没有答案