我有一个局部视图,上面有一个创建按钮,但是一旦按下它就不会到达控制器。按下时,它将转至/ Rebate / Rebate / Edit / 1
@model RMS.Models.RebateLine
@using (Html.BeginForm("Create","RebateLine",FormMethod.Post )) {
@Html.ValidationSummary(true)
<fieldset>
<legend>RebateLine</legend>
<div class="editor-label">
@Html.LabelFor(model => model.RebateID)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
编辑:添加控制器逻辑
public class RebateLineController : BaseController
{
public ActionResult Create()
{
return View();
}
//
// POST: /RebateLine/Create
[HttpPost]
public ActionResult Create(RebateLine rebateline)
{
if (ModelState.IsValid)
{
UnitOfWork.RebateLineRepository.Insert(rebateline);
UnitOfWork.Save();
return RedirectToAction("Index");
}
return View(rebateline);
}
...
}
附加编辑:/ Rebate是我点击创建后显示的内容,下面是对被调用部分的调用。
@{ Html.RenderPartial("_RebateLines",Model.RebateLines.FirstOrDefault() ); }
最终编辑: 我已经重新设计了这个部分,除了显示之外不需要做任何事情,但如果有人想出答案,我会尝试稍后再回来修复它。
答案 0 :(得分:1)
您的Controller似乎名为RebateController
。
如果是这种情况,那么改变:
@using (Html.BeginForm("Create","RebateLine",FormMethod.Post )) {
到
@using (Html.BeginForm("Create","Rebate",FormMethod.Post )) {
修改强>
创建一个DebugController并添加一个名为:Test1的动作。 为它创建相应的视图。不要使用任何布局页面。
只需将此标记添加到正文部分:
<div>
@{Html.RenderPartial("_RebateLines",new Model.RebateLines());}
</div>
以调试模式运行项目并访问/ debug / test1 url。 在RebatteLines :: Create操作中放置一个断点。 点击提交按钮。 必须击中断点。 如果它被点击意味着页面中有一些你正在调用Html.RenderPartial的东西阻止表单提交到预期的URL,可能是一些javascript。甚至可能在你的布局。 确认上面提到的测试是否按预期运行。
答案 1 :(得分:0)
您正在使用名为“RebateLineController”的控制器和ActionResult“Create”。但是你已经提到了网址为“/ Rebate / Edit / 1”。网址是否正确?
从您的代码:
if (ModelState.IsValid)
{
UnitOfWork.RebateLineRepository.Insert(rebateline);
UnitOfWork.Save();
return RedirectToAction("Index");
}
很明显,如果模型状态有效,页面将被重定向到你给出的“索引”:
return RedirectToAction("Index");
我说错了吗?这是我可以从您的代码中假设的。
问候.. 苏尼
答案 2 :(得分:0)
因为你的所有代码都很好看。我会看看Glimpse这可能有助于您追踪问题。
答案 3 :(得分:-1)
尝试使用
@Html.RenderAction("Create", "RebateLines", new { id = Model.RebateLines.FirstOrDefault().RebateID })
如下所示更改您的控制器:
public class RebateLineController : BaseController
{
public ActionResult Create(int id)
{
return View();
}
//
// POST: /RebateLine/Create
[HttpPost]
public ActionResult Create(int id,RebateLine rebateline)
{
if (ModelState.IsValid)
{
UnitOfWork.RebateLineRepository.Insert(rebateline);
UnitOfWork.Save();
return RedirectToAction("Index");
}
return View(rebateline);
}
...
}
希望有所帮助......
如果有用,请标记为答案。