我真的想要你的選擇。 我們使用web api 2將這個.net MVC 3項目更新爲MVC 4,這是一項Web服務。 ajax調用來自Android機器與Devextreme/Phonegap。MVC 4 Web API 2 ajax調用所有參數可選
更新後,當我打電話登錄Android電子網絡服務我得到 「沒有HTTP資源發現匹配的請求URI‘http://www.whatever.gr/MVCService/Actions/Login’」
我想設置路由,這樣的所有方法MVC服務可以有參數可選。 我不能得到這個工作..
我們不能改變在Android應用程式的來源,Ajax調用低於
function doLogin(username, password, callback) {
loading(true);
var dataStr = "uid=" + uid + "&username=" + username + "&password=" + password;
var success = false;
var token = "";
$.ajax({
type: "POST",
url: registrationServiceUrl + 'Login',
data: dataStr,
beforeSend: function() {
//alert("registration no: " + registrationid);
},
success: function (retval) {
if (retval.indexOf('SUCCESS') == 0) {
success = true;
token = retval.substring(8);
//setTokenToSettings(token);
} else {
success = false;
};
callback(success, token);
loading(false);
},
error: function (retval) {
callback(success, token);
loading(false);
}
});
}
MVC中的路線是
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
//config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
代碼
當我在瀏覽器中的參數如下所示時,我有一個響應 'http://www.whatever.gr/MVCService/Actions/Login?param1=1¶m=2¶m3=3'。
我想要的行爲,什麼時候打「http://www.whatever.gr/MVCService/Actions/Login」 或 「http://www.whatever.gr/MVCService/Actions/Login?param1=1¶m=2¶m3=3&invalidParamName=x」。
並且web服務方法以空參數值觸發。
但是,如果沒有在方法
public string Login(string pamar1 = "",string param2 = "", string param3 = "")
隨着MVC 3設置可選參數,正如我前面解釋了這是工作的罰款。
在此先感謝您的時間。
嗨,我不認爲這是什麼做的客戶端應用程序。前段時間我也有同樣的問題。請看看這篇文章http://stackoverflow.com/questions/19093603/simple-post-to-web-api/19094245#19094245,也看到它在這個問題背後的原因http://stackoverflow.com /問題/ 19424493 /爲什麼 - 不-ASP網的Web-API允許僅此一個參數換法後 – Amila
我已經試過[HTTPGET(),HttpPost()] 公共JsonResult登錄([ FromBody]串UID,[FromBody]用戶名字符串,[FromBody]字符串密碼),但我得到時發生錯誤 –
Dimitrios
我覺得這是Ajax調用數據:dataStr $阿賈克斯({ 類型: 「POST」, 網址: registrationServiceUrl +「登陸」, 數據:dataStr, 但它是如何工作的MVC 3 ?? – Dimitrios