在 Controller 的 MVC 应用程序中,我使用 Entity Framework 和 LINQ。然后我将 10 条记录存储在一个变量中,并将它们绑定(bind)到模型。但如果没有记录,我会收到错误
Index was out of range. Must be non-negative and less than the size of the collection.
当我在 View 中处理空异常时。我遇到编译时错误
Cannot initialize implicitly typed variable with an array initializer.
查看:
function initMap() {
var labels = '12345678910';
var labelIndex = 0;
@if (Model != null)
{
var myLatLng = { lat: @Model[0].latitude.ToString(), lng: @Model[0].longitude.ToString() };
}
else
{
var myLatLng = { lat:0, lng:0};//Bharat Seva Ashram
}
Controller :
List<AssetTrackerViewModel> model = new List<AssetTrackerViewModel>();
/// PIR 1 //RAD:DN
try
{
WebRequest req = WebRequest.Create(@"https://url");
req.Method = "GET";
req.Headers["Authorization"] = "Basic " + "pwd==";
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
var encoding = resp.CharacterSet == "" ? Encoding.UTF8 : Encoding.GetEncoding(resp.CharacterSet);
using (var stream = resp.GetResponseStream())
{
var reader = new StreamReader(stream, encoding);
var responseString = reader.ReadToEnd();
**//here "items" im getting null / empty**
var items = Pirs.Where(a => !a.dataFrame.EndsWith("AAAAAAAAAAA="))
.GroupBy(a => a.dataFrame.Substring(a.dataFrame.Length - 12))
.Select(g => g.First())
.OrderByDescending(a => a.timestamp)
.Take(10);
foreach (var item in items)
{
byte[] data = Convert.FromBase64String(item.dataFrame.ToString());
}
}
}
最佳答案
问题是下面的代码被识别为 Razor 代码,而您可能希望它是 Javascript 代码:
var myLatLng = { lat: @Model[0].latitude.ToString(), lng: @Model[0].longitude.ToString() };
只需在您希望 Razor 忽略的语句前添加 @:
即可:
@if (Model != null)
{
@: var myLatLng = { lat: @Model[0].latitude.ToString(), lng: @Model[0].longitude.ToString() };
}
else
{
@: var myLatLng = { lat:0, lng:0 };
}
关于c# - 如果 model 为 null ,如何处理 null 异常,如何在 mvc 的 View 中处理它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43277339/