【发布时间】:2018-07-31 10:37:55
【问题描述】:
这段代码:
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 在数据对象中。 java 会对我的 guid 做些什么吗?
迷路了!
谢谢
约翰
【问题讨论】:
-
Guid 是由 .net 创建的唯一标识符。像这样的东西:9de31e20-3fcc-422d-a332-08d5f6cff646 dataObject = { id: @Html.ViewData.Model.ID};成为 dataObject = { id: 9de31e20-3fcc-422d-a332-08d5f6cff646 };
-
dataObject = { id: 9de31e20-3fcc-422d-a332-08d5f6cff646 };是有效的 JS 吗?什么会使它使有效?让我们举一个不同的例子。假设我有var bob = Hello World;- 我该怎么做才能使 那个 有效?
标签: c# asp.net model-view-controller asp.net-core