2012-04-15 75 views
0

我在我的MVC控制器此方法時收到空參數錯誤:MVC張貼到控制器

enter image description here

什麼...........?它清楚地表明我已經提供了3作爲參數,但後來聲稱我發送它爲null?

有人能告訴我這裏發生了什麼嗎?怎麼修?

+0

,你能告訴我們你的路由表? – bhamlin 2012-04-15 21:34:12

回答

4

默認模型活頁夾將綁定到名爲「id」的參數,但您的參數名爲invoiceId,因此它不知道將值綁定到它。一個快速解決辦法是將您的POST URL更改爲'/Invoice/RejectInvoice/?invoiceId='+ 3

+2

或者,將您的參數更改爲RejectInvoice(int id) – 2012-04-15 21:52:44

0

如果你正在做一個職位,你也應該裝飾了你的方法[HttpPost]屬性和 檢查發送的參數,我的建議是:

[HttpPost] 
public void RejectInvoice(FormCollection collection) 
{ 
    var id = -1; 
    if(int.TryParse(collection["invoiceId"], out id)) 
    { 
     var invoice = _unitOfWork.InvoiceRepository.Get(id); 

     invoice.Rejected = true; 
     invoice.RejectedDateTime = DateTime.Now; 

     _unitOfWork.InvoiceRepository.InsertUpdate(invoice); 
     _unitOfWork.Save();   
    } 

} 

爲jQuery的:

$.post("/Invoice/RejectInvoice/", { invoiceId: "3"}, callback); 

(我認爲,它已經有一段時間,因爲我最後一次使用.post的$)