从View导入控制器?

时间:2018-07-31 10:37:55

标签: c# asp.net model-view-controller asp.net-core

此代码:

       public async Task<JsonResult> GetLatLong(int? id)
        {
            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }
            //Guid idGuid;
            //Guid.TryParse(id, out idGuid);
            var flightData = await _context.FlightData.SingleOrDefaultAsync(m => m.ID == id);
            var returnedData = new
            {
                id,
                latitude = flightData.Latitude,
                longitude = flightData.Longitude
            };
            return Json(returnedData);
        }
如果将int数据类型使用id,从视图中

可以正常工作。我尝试更改Guid

       public async Task<JsonResult> GetLatLong(Guid? id)
        {
            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }
            //Guid idGuid;
            //Guid.TryParse(id, out idGuid);
            var flightData = await _context.FlightData.SingleOrDefaultAsync(m => m.ID == id);
            var returnedData = new
            {
                id,
                latitude = flightData.Latitude,
                longitude = flightData.Longitude
            };
            return Json(returnedData);
        }

(也是模型),然后它不会被调用。

查看代码如下:

    @section mapscripts {
    <section class="scripts">
        <script type="text/javascript">
            $(document).ready(function() {
                Initialize();
            });

            function Initialize() {

                var dataObject = { id: @Html.ViewData.Model.ID};
                //var dataObject = @Html.ViewData.Model.ID;
                var url = '@Url.Action("GetLatLong", "FlightDatas")';
                $.get(url,
                    dataObject,
                    function (response) {

我根本无法弄清楚为什么它不起作用。我已恢复为int及其罚款。就像Guid一样不能设置为id
我什至在chrome中查看了调试信息,可以看到guid在dataobject中。 Java对我的GUI有用吗?
丢了!
谢谢
约翰

1 个答案:

答案 0 :(得分:0)

哇,我显然已经看了太久了。非常感谢mjwills的指导。

var dataObject = { id: @Html.ViewData.Model.ID};

更改为

var dataObject = { id: "@Html.ViewData.Model.ID"};

和控制器:

    public async Task<JsonResult> GetLatLong(string id)
    {
        if (id == null)
        {
            throw new ArgumentNullException(nameof(id));
        }
        Guid idGuid;
        Guid.TryParse(id, out idGuid);
        var flightData = await _context.FlightData.SingleOrDefaultAsync(m => m.ID == idGuid);

现在一切正常