ارتباط (Consume) وب سرویس (ASMX) در ASP.Net MVC
با سلام در این مقاله با یک مثال توضیح خواهیم داد که چگونه می توان با ASMX) Web Service) در ASP.Net MVC Razor ارتباط گرفت .
در این مقاله نحوه ارتباط ASMX) Web Service) در ASP.Net MVC Razor با یک Web Service عمومی کشور را که آدرس IP ارائه شده به آن بازگرداند ، نشان می دهد.
توجه : به منظور تصویر سازی ، از وب سرویس رایگان که برای یافتن موقعیت جغرافیایی یک آدرس IP است ، استفاده می کنیم.
http://www.webservicex.net/geoipservice.asmx
افزودن مرجع وب سرویس در ویژوال استودیو
1- بر روی پروژه در Solution Explorer راست کلیک کنید و از منوی زمینه گزینه Add Service Reference را انتخاب کنید.

2- اکنون در Add Service Reference Dialog باید بر روی دکمه Advanced کلیک کنید.

3- در Dialog Service Reference Settings باید روی دکمه Add Web Reference کلیک کنید.

4- اکنون در Add Web Reference Dialog باید URL سرویس وب را اضافه کرده و روی دکمه Green Go کلیک کنید تا آن را پیدا کنید. پس ازپیدا کردن سرویس وب ، مرجع خود را با استفاده از نام مرجع وب TextBox ، نام مناسب خود را معرفی کرده و روی دکمه Add Reference کلیک کنید.

5- سرانجام متوجه خواهید شد که مرجع وب به پروژه شما اضافه شده است.
.png)
Controller
Controller از دو روش تشکیل شده است.
روش انجام عملیات GET
در داخل این روش Action ، به View برگشت داده می شود.
روش انجام عملیات POST
این روش هنگام ارسال فرم فراخوانی می شود.
یک شی از GeoIPService ایجاد و سپس مقدار آدرس IP دریافت شده از فرم به عنوان پارامتر به متد GetGeoIP منتقل می شود که نام کشوری را که آدرس IP به آن تعلق دارد ، بازگرداند و سپس به یک شیء ViewBag اختصاص داده می شود.
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string iPAddress)
{
GeoService.GeoIPService service = new GeoService.GeoIPService();
GeoService.GeoIP output = service.GetGeoIP(iPAddress.Trim());
ViewBag.Country = "Country: " + output.CountryName;
return View();
}
}
View
View شامل یک فرم HTML است که با استفاده از روش Html.BeginForm با پارامترهای زیر ایجاد شده است.
ActionName - نام عمل در این حالت Index است.
ControllerName - نام Controller در این حالت Home است.
FormMethod - این روش فرم یعنی GET یا POST را مشخص می کند. در این حالت روی POST تنظیم می شود.
در داخل فرم ، TextBox و دکمه ارسال است . هنگامی که دکمه را فشار می دهید ، فرم ارسال می شود و کشور دریافت شده از وب سرویس با استفاده از یک شی ViewBag نمایش داده می شود.
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width"/>
<title>Index</title>
<style type="text/css">
body {
font-family: Arial;
font-size: 10pt;
}
</style>
</head>
<body>
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.TextBox("IPAddress")
<input type="submit" value="Submit"/>
<hr/>
@ViewBag.Country
}
</body>
</html>
عکس صفحه
