我一直在研究我的asp.net mvc 4一段時間,現在有一個問題......其實我有兩個相關的問題...讓我們從簡單的第一個。html.beginForm不會調用控制器方法
我有很多意見,除了這一次所有的工作....我已經剝離下來,並讓它變得更簡單,試圖找到錯誤......但下面依然不能調用控制器的方法:
@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)我相信我已經打別人,但他們沒有想到,現在....
我用螢火檢查html,我沒有看到任何錯誤...它正在創建一個帶有指向該方法的dataurl的表單...,並且WorkCenterID和VIN的值填充了...可能導致probem的問題? ?????
有沒有人有建議要看什麼或嘗試調試呢?
我的第二個問題也涉及控制方法的調用....我知道,我們應該能有這樣的方法:在beginForm
@using(Html.BeginForm("StartWorkOrderTask", "Mobile"))
public ActionResult StartWorkOrderTask(WorkOrderInputModel model)
這
但是,當我這樣做時,約90%的時間控制器方法確實被調用....我點擊輸入按鈕,沒有任何反應.....通過明確地將參數放在beginForm中我「解決」了問題....但我不知道爲什麼第一個不起作用
我還沒有定義什麼特別的路線...只是使用默認的....我使用的地方,但我一直小心的命名,所以沒有衝突...
我明白你說的對GET和POST什麼....我有一個創建了get屏幕和等待輸入....我只是沒有提到這一點....我專注於處理屏幕上的信息......這是郵件進來的地方......我期望我需要有[HttpPost]屬性來指定帖子,但我注意到,該代碼似乎與HttpPost一樣,或與我不明白的HttpPost ... – user2040849 2013-04-05 12:21:11
(用盡了空間)....另一點我很困惑的是路線......我明白你對自定義路線的需求......但讓我困惑的是代碼(USUALLY)在我從模型轉換爲primitatve類型集時起作用......我也從模型開始,當我遇到問題時將其轉換爲基本類型(沒有修改路線)...和代碼開始工作?????我沒有得到任何錯誤...代碼只是掛起...我按下按鈕,沒有任何反應...沒有控制器方法被調用,但沒有錯誤....是的,我檢查了呈現的HTML – user2040849 2013-04-05 12:26:16
(用完空間)....無論如何,呈現的HTML看起來不錯...在上面的例子中,它是一個簡單的形式發佈到控制器方法public ActionResult StartWorkOrderTask(INT WorkCenterID,字符串VIN) – user2040849 2013-04-05 12:27:13