2017-05-07 40 views
0

我在asp.net mvc的編寫web服務,仍然有下面的代碼連接相同的錯誤:編輯視圖在asp.net mvc的 - 控制器錯誤

public ActionResult Edit(int C) 
    { 
     var customers = _ourCustomerRespository.GetCustomers(); 
     var std = customers.Where(s => s.CustomerID == C).FirstOrDefault(); 

     return View(std); 
    } 

    [System.Web.Http.HttpPost] 
    public ActionResult Edit(Customer C) 
    { 
     return RedirectToAction("Index"); 
    } 

,當我嘗試使用我的服務我有錯誤消息

行動上控制器類型 「DefaultController」「編輯」當前請求是採用以下的操作方法之間曖昧: System.Web.Mvc.ActionResult編輯(Int32)已在類型 WebApplication2。 Controllers.DefaultController System.Web.Mvc.ActionResult編輯在 型WebApplication2.Controllers.DefaultController(WebApplication2.Models.Customer)

任何人可以幫助我解決嗎?

回答

2

這是因爲你用錯誤的HttpPost屬性修飾了你的控制器動作。您需要this one

[System.Web.Mvc.HttpPost] 
public ActionResult Edit(Customer C) 

你已經使用了一個(System.Web.Http.HttpPost)時,放置在ASP.NET MVC控制器動作是專門爲的ASP.NET Web API操作,並具有嚴格的零影響。因此,ASP.NET MVC框架無法消除2 Edit操作之間的歧義,因爲它們使用的是相同的動詞,因此您會收到錯誤。

備註:請確保您正確標記您的問題以避免混淆。目前您已使用asp.net-web-api,而您顯示的控制器操作顯然爲asp.net-mvc。這是兩個完全不同的框架。