如何使用MVC Front to Back

时间:2017-11-08 14:10:29

标签: c# asp.net-mvc asp.net-mvc-5

基本上这是一个简单的添加,修改,删除网页我在MVC5中做,EF6使用存储库模式(暂时没有工作单元)和DI与IoC(Autofac)。

这是我使用EF 6的域类:

public partial class Turnos
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public Turnos()
    {
        Alumnos = new HashSet<Alumnos>();
    }

    public int Id { get; set; }

    [Required]
    [StringLength(50)]
    public string Descripcion { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Alumnos> Alumnos { get; set; }
}

来自Id的{​​{1}}已被另一个表(1到n关系)使用

Turnos

这些是我的模特:

public partial class Alumnos
{
    public int Id { get; set; }

    [Required]
    [StringLength(50)]
    public string Nombre { get; set; }

    [Required]
    [StringLength(50)]
    public string Apellido { get; set; }

    [Required]
    [StringLength(50)]
    public string Legajo { get; set; }

    public int Dni { get; set; }

    public int Carrera { get; set; }

    public int Turno { get; set; }

    public virtual Carreras Carreras { get; set; }

    public virtual Turnos Turnos { get; set; }
}

在我的视图中public class AlumnoModel { #region Fields public string Nombre { get; set; } public string Apellido { get; set; } public string Legajo { get; set; } public int Dni { get; set; } public int Carrera { get; set; } public int Turno { get; set; } #endregion } public class TurnoModel { public int Id { get; set; } public string Descripcion { get; set; } } 是使用Razor填充下拉列表的部分视图:

Turnos

现在我的问题是: 插入时将我唯一的 @{ foreach (var item in Model) { <option id="@item.Id">@item.Descripcion</option> } } 发送到前面是否安全?如果不 发送此人所选元素的Id的最佳方式是什么?比较字符串当然是不可能的。

如果在我插入Id时发送Id是安全的,我如何使用开发者控制台保护自己改变Alumno s的顺序?

1 个答案:

答案 0 :(得分:0)

作为一般保护准则,您应始终尽可能多地验证来自用户的任何数据。可以把它想象成会被数字Antrax或其它东西污染。所以是的,验证它,但不要避免将ID发送到前面。

另外,如果您担心更改订单,那么我必须相信Turnos的订单很重要。如果是这样,那么ID不应该是提供订单的那个,它的工作就是提供IDentification所以:如何用另一个字段标记它以获得订单?也许是Turno的开始时间?