我是MVC框架的新手。目前,我正在为google的REST API请求构建一个应用程序,并返回JSON对象(非常简单)。我想从视图页面向控制器传递两个参数。将html表单的两个参数传递给控制器的正确方法是什么?
我的目标是发送一个REST请求,然后从JSON对象获取JSON对象并打印属性。任何帮助都将不胜感激。
controller /homeController.cs中的控制器
public class HomeController : Controller
{
public ActionResult Index()
{
string MyString = ViewBag.Message = "REST API Application";
return View();
}
[HttpPost]
public ActionResult SendRestRequest(Latitude latitude, Longitude longitude)
{
var stopwatch = new System.Diagnostics.Stopwatch();
var timestamp = new System.Runtime.Extensions();
// fetch data (as JSON string)
var url = new Uri("https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510×tamp=1331161200&key=ggkiki9009FF");
var client = new System.Net.WebClient();
var json = client.DownloadString(url);
// deserialize JSON into objects
var serializer = new JavaScriptSerializer();
var data = serializer.Deserialize<JSONOBJECT.Data>(json);
// use the objects
decimal DstOffset = data.dstOffset;
decimal RawOffset = data.rawOffset;
ViewBag.jsonDstOffset = data.dstOffset;
ViewBag.jsonRawOffset = data.rawOffset;
ViewBag.jsonStatus = data.status;
ViewBag.jsonTimeZoneId = data.timeZoneId;
ViewBag.jsonTimeZoneName = data.timeZoneName;
return View();
}
}
namespace JSONOBJECT
{
public class Data
{
public decimal dstOffset { get; set; }
public decimal rawOffset { get; set; }
public string status { get; set; }
public string timeZoneId { get; set; }
public string timeZoneName { get; set; }
}
}
}主页/查看Index.htmlcs页面
<form action="@Url.Action("SendRestRequest", "Home")" method="post" target="_blank">
Latitude:<br>
<input type="text" name="Latitude" value=""><br>
Longitude:<br><br>
<input type="text" name="Longitude" value=""><br><br>
<input type="submit" value="Send REST Requst">
</form>发布于 2016-03-07 16:25:10
您只需将结果返回为json并返回类型JsonResult即可。
[HttpPost]
public JsonResult SendRestRequest(decimal latitude, decimal longitude)
{
return Json(your content);
}https://stackoverflow.com/questions/31257647
复制相似问题