我还在尝试使用MVC3。我还没有找到一个很好的资源来帮助我入门。我想知道当用户输入邮政编码时是否可以使用返回字符串的web服务?
我使用json但在ASP.NET Web应用程序中使用了web服务。我能够根据用户输入的邮政编码返回特许经营权。我想知道我是否可以在MVC中做同样的事情?
如何将以下内容转换为在MVC中工作:
// Html code in my Test.aspx page
<input id="txtZipCode" type="text" onchange="javscript:changed(this.value)" />
<div id="Result"></div>
这是我的javascript代码:
function changed(value) {
$.ajax({
type: "POST",
url: "Test.aspx/GetData",
data: "{'zipcode': '" + value + "'}",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
$("#Result").text(msg.d);
},
error: function () {
$("#Result").text('Failed');
}
});
}
这是我背后的代码:
[System.Web.Services.WebMethod]
public static string GetData(string zipcode)
{
srvc.bbcs tmp = new srvc.bbcs (); // consume test webservice
string code = tmp.GetFETerrByZip(zipcode);
return code;
}
答案 0 :(得分:1)
非常相似,您必须使用HttpPost属性修饰您的Action,以便接受POST请求:
[HttpPost]
public ActionResult GetData(string zipcode)
{
//return DateTime.Now.ToShortDateString();
srvc.BudgetBlindsCommercialSolutions tmp = new srvc.BudgetBlindsCommercialSolutions();
string code = tmp.GetFETerrByZip(zipcode);
return Json(new {code= code});
}
您的jquery呼叫将是:
function changed(value) {
$.ajax({
type: "POST",
url: "YourController/GetData",
data: "{'zipcode': '" + value + "'}",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
$("#Result").text(msg.d);
},
error: function () {
$("#Result").text('Failed');
}
});
}
答案 1 :(得分:0)
是的,你会像你刚刚展示的那样做。但是,我不会在onchange事件上执行此操作,因为这意味着每次输入数字时都会发送请求,这可能会让人感到困惑。或许在onblur上。