此代码:
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有用吗?
丢了!
谢谢
约翰
答案 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);
现在一切正常