我正在完成我的第一个MVC项目,并且正在努力解决一些问题。到目前为止,我已经能够使用以下代码行
加载带有ajax的局部视图@Ajax.ActionLink("New Car User", "Index", "CarUser", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divForms", InsertionMode = InsertionMode.Replace })
我知道这是在Car Car用户控制器上加载附加到Index操作的局部视图:
public ActionResult Index()
{
return View(db.CarUsers.ToList());
}
我想要做的是在同一个控制器上加载附加到Create操作的视图:
[HttpPost]
public ActionResult Create(CarUser caruser)
{
if (ModelState.IsValid)
{
db.CarUsers.Add(caruser);
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
return View(caruser);
}
但是当我使用时:
@Ajax.ActionLink("New Car User", "Create", "CarUser", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divForms", InsertionMode = InsertionMode.Replace })
它基本上只是在我的表中创建一个空行。谁能告诉我哪里出错了?我想我需要改变控制器上的动作,但我不知道怎么做?
非常感谢
答案 0 :(得分:0)
解决了!
原来我有两个名为create的行为:
[HttpGet]
public ActionResult Create()
{
return View();
}
//
// POST: /CarUser/Create
[HttpPost]
public ActionResult Create(CarUser caruser)
{
if (ModelState.IsValid)
{
db.CarUsers.Add(caruser);
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
return View(caruser);
}
我将第一个动作方法标记为[HttpGet]并将@ AJAX.ActionLink更改为HttpMethod =“GET”已经有效