首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >控制器参数MVC ASP.NET

控制器参数MVC ASP.NET
EN

Stack Overflow用户
提问于 2015-07-07 08:00:52
回答 2查看 794关注 0票数 2

我是MVC框架的新手。目前,我正在为google的REST API请求构建一个应用程序,并返回JSON对象(非常简单)。我想从视图页面向控制器传递两个参数。将html表单的两个参数传递给控制器的正确方法是什么?

我的目标是发送一个REST请求,然后从JSON对象获取JSON对象并打印属性。任何帮助都将不胜感激。

controller /homeController.cs中的控制器

代码语言:javascript
复制
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&timestamp=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页面

代码语言:javascript
复制
<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>
EN

Stack Overflow用户

发布于 2016-03-07 16:25:10

您只需将结果返回为json并返回类型JsonResult即可。

代码语言:javascript
复制
[HttpPost]
public JsonResult SendRestRequest(decimal latitude, decimal longitude)
{
    return Json(your content);
}
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31257647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档