c# - 如果 model 为 null ,如何处理 null 异常,如何在 mvc 的 View 中处理它?

标签 c# asp.net-mvc entity-framework linq asp.net-mvc-4

在 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/

相关文章:

c# - WPF WebBrowser (3.5 SP1) Always on top - 在 WPF 中显示 HTML 的其他建议

c# - ASP.NET Core RC2 和 .NET 4.5.1 应用程序之间的共享 cookie 身份验证

c# - 在 SelectList 中设置自定义文本字段

c# - 代码优先 Entity Framework - 对评论功能进行评论,相同的评论出现两次

c# - 多个表的通用批量更新

c# - 如何通过C#代码恢复SQL Server数据库

c# - EF Core - NodaTime 类型的脚手架?

c# - 表单操作中的 MVC ASP.NET Url.Action,将表单数据传递给它

asp.net-mvc - ASP.NET MVC 的用户-组-权限用户界面设计

c# - 将异步与 Entity Framework 一起使用 IQueryable<T> 类型的选择列表