【发布时间】:2013-04-09 19:38:04
【问题描述】:
我已经在我的 asp.net mvc 4 上工作了一段时间,但我遇到了一个问题...实际上我有两个相关的问题...让我们先从简单的开始。
我有很多视图和所有工作,除了这个....我已经将它剥离并简化了尝试查找错误...但以下仍然不是调用控制器方法:
@using TBS.Etracs.Web.Main.Areas.WorkOrder.Models
@model WorkOrderInputModel
@{
ViewBag.Title = "Work Orders Per Pad";
}
@using (Html.BeginForm("StartWorkOrderTask", "Mobile",
new {WorkCenterID=Model.WorkCenterID, VIN=Model.VIN }))
{
<div>
<label><strong>WorkCenterID:</strong></label>
<label>@Model.WorkCenterID</label>
</div>
<div>
<label><strong>VIN:</strong></label>
<label>@Model.VIN</label>
</div>
<input type="submit" value="Start Work Order" />
}
控制器方法是一个名为“MobileController”的控制器,这里是方法签名:
[HttpPost] //Tried with and without this attribute...
public ActionResult StartWorkOrderTask(int WorkCenterID, string VIN)
{
}
我在控制器方法中设置了一个断点....输入时它永远不会被调用 表单上的按钮被点击....
我以前见过这种问题是由以下原因引起的: 1) 有多个 beginForm 2) 没有包含正确的 javascript 文件 3) 样式参数 ....我不知道为什么,但包括一些样式 控件导致输入按钮不起作用... 4) 我确定我打过其他人,但他们现在没有想到....
我使用 firebug 检查了 html,但没有发现任何问题...它正在创建一个带有指向该方法的 dataurl 的表单...并填写了 WorkCenterID 和 VIN 的值...什么可能导致probem??????
有没有人建议看看什么或尝试调试什么?
我的第二个问题也涉及到控制器方法的调用......我知道我们应该能够拥有这样的方法:
public ActionResult StartWorkOrderTask(WorkOrderInputModel model)
beginForm 上的这个
@using(Html.BeginForm("StartWorkOrderTask", "Mobile"))
但是大约 90% 的情况下,当我这样做时,控制器方法确实会被调用......我点击了输入按钮,但没有任何反应......通过将参数显式放入 beginForm 我“解决”了问题....但我不知道为什么第一个不起作用
我没有为路线定义任何特殊的东西......只是使用了默认......我正在使用区域,但我在命名时很小心,所以没有冲突......
【问题讨论】:
标签: asp.net-mvc-4