请求的URL返回500 - 内部服务器错误

时间:2015-06-01 03:26:29

标签: c# kendo-ui kendo-grid kendo-asp.net-mvc

我在使用kendo-grid的项目asp.net mvc razor中遇到问题。数据模型如下:

public partial class Usuario
{
    private string _id;
    public virtual string Id
    {
        get
        {
            return this._id;
        }
        set
        {
            this._id = value;
        }
    }

    private string _idPerfil;
    public virtual string IdPerfil
    {
        get
        {
            return this._idPerfil;
        }
        set
        {
            this._idPerfil = value;
        }
    }

    private string _idEntidad;
    public virtual string IdEntidad
    {
        get
        {
            return this._idEntidad;
        }
        set
        {
            this._idEntidad = value;
        }
    }

    private int? _idDepArea;
    public virtual int? IdDepArea
    {
        get
        {
            return this._idDepArea;
        }
        set
        {
            this._idDepArea = value;
        }
    }

    private Char _forzarCambioClave;
    public virtual Char ForzarCambioClave
    {
        get
        {
            return this._forzarCambioClave;
        }
        set
        {
            this._forzarCambioClave = value;
        }
    }

    private short? _idDirectivaSeguridad;
    public virtual short? IdDirectivaSeguridad
    {
        get
        {
            return this._idDirectivaSeguridad;
        }
        set
        {
            this._idDirectivaSeguridad = value;
        }
    }

    private string _hash;
    public virtual string Hash
    {
        get
        {
            return this._hash;
        }
        set
        {
            this._hash = value;
        }
    }

    private Char _requiereRol;
    public virtual Char RequiereRol
    {
        get
        {
            return this._requiereRol;
        }
        set
        {
            this._requiereRol = value;
        }
    }

    private string _idEstado;
    public virtual string IdEstado
    {
        get
        {
            return this._idEstado;
        }
        set
        {
            this._idEstado = value;
        }
    }

    private long _idPersona;
    public virtual long IdPersona
    {
        get
        {
            return this._idPersona;
        }
        set
        {
            this._idPersona = value;
        }
    }

    private Estado _estado;
    public virtual Estado Estado
    {
        get
        {
            return this._estado;
        }
        set
        {
            this._estado = value;
        }
    }

    private DirectivaSeguridad _directivaSeguridad;
    public virtual DirectivaSeguridad DirectivaSeguridad
    {
        get
        {
            return this._directivaSeguridad;
        }
        set
        {
            this._directivaSeguridad = value;
        }
    }

    private Entidad _entidade;
    public virtual Entidad Entidad
    {
        get
        {
            return this._entidade;
        }
        set
        {
            this._entidade = value;
        }
    }

    private Persona _persona;
    public virtual Persona Persona
    {
        get
        {
            return this._persona;
        }
        set
        {
            this._persona = value;
        }
    }

    private IList<Rol> _roles = new List<Rol>();
    public virtual IList<Rol> Roles
    {
        get
        {
            return this._roles;
        }
    }

    private IList<LogMasterAuditoria> _logsMasterAuditoria = new List<LogMasterAuditoria>();
    public virtual IList<LogMasterAuditoria> LogsMasterAuditoria
    {
        get
        {
            return this._logsMasterAuditoria;
        }
    }

}

控制器管理模型是:

public class UsuariosController : BaseController
{
    private Usuario usuario = new Usuario();

    public ActionResult Cargar([DataSourceRequest]DataSourceRequest request)
    {
        return Json(backend.Usuarios.ToDataSourceResult(request));
    }

... }

查看是:

<div>
    @(Html.Kendo().Grid<NetInfinity.BackendCore.Usuario>()
        .Name("grid")
        .Columns(columns =>
        {
            columns.Bound(c => c.Id).Filterable(false).Width(100).Title(@Usuarios.Id);
            columns.Bound(c => c.Persona.Nombres).Width(80).Title(@Usuarios.Nombre);
            columns.Bound(c => c.Estado.Descripcion).Width(60).Title(@Usuarios.NombrePerfil);
            columns.Bound(c => c.Persona.TipoIdentidad.FormatoPresentacion).Width(20).Title(@Usuarios.IdTipo);
            columns.Bound(c => c.Persona.NumeroIdentificacion).Width(30).Title(@Usuarios.IdNumero);
            columns.Command(c => c.Custom("Edit").Text("Editar"));
            columns.Command(c => c.Custom("Remove").Text("Eliminar"));
        })
        .ToolBar(t => { t.Excel(); })
        .Navigatable()
        .Pageable()
        .Sortable()
        .Scrollable()
        .Filterable()
        .Editable(e => e.Mode(GridEditMode.PopUp))
        .Resizable(resize => resize.Columns(true))
        .HtmlAttributes(new { style = "height:430px;" })
        .DataSource(dataSource => dataSource
            .Ajax()
            .ServerOperation(false)
            .Model(model => model.Id(c => c.Id))
            .Read(read => read.Action("Cargar", "Usuarios"))
         )
    )
</div>

当执行来自Controller的Json序列化时似乎引起了问题,因为没有数据显示在网格中并且表中有行。也许从模型中序列化对象(如虚拟属性)存在问题,例如:虚拟Persona对象和其他对象。如需使用它,请提供帮助。

1 个答案:

答案 0 :(得分:0)

您是否尝试过调试它并获取异常消息+堆栈跟踪来检测错误?调试器是避免“可能”的好工具。此外,如果在Web.config中打开了这样的配置,ASP.NET肯定会返回错误描述。

请通过调试找到错误并在此处发布异常详细信息。

或者更改您的Web.config,使其具有以下值:

<configuration>
    <system.web>
        <customErrors mode="Off" />
    </system.web>
</configuration>

刷新页面,您将收到错误的描述 检测错误并修复或在此处发布,我们会帮助您。