ASP.Net MVC5中DropDownlist的困难

时间:2018-10-12 20:53:03

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

我在dropdownlist上苦苦挣扎,尝试了几种在线方法,所有失败的方法都将显示我尝试过的方法。

目标 创建包含日期,参考...和国家/地区的收据。国家/地区为必填项,应为下拉列表。

因此,收据(“ ID,名称,日期,地址,城市,国家/地区列表)的表。

RecieptModel

public class TransactionModel
{
    public int ID { get; set; }
    public int Name{ get; set; }
    public DateTime Date { get; set; }
    public string Address { get; set;}
    public string City { get; set; }
    public CountryList CountryList { get; set; }
}

public class ApplicationDbContext : DbContext
{
    public DbSet<RecieptModel> Reciepts { get; set;}
    public DbSet<CountryList> coutryList { get; set; }
}

国家列表

public class CountryList
{
    public byte Id { get; set; }

    public enum Country
    {
        Germany,
        US,
        UK
    }
}

控制器

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,Name,Date,City,CountryList")] Reciepts reciepts)
{
    if (ModelState.IsValid)
    {
        db.Reciepts.Add(reciepts);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(reciepts);
}

查看

<div class="form-group">
    @Html.LabelFor(model => model.CountryList, new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EnumDropDownListFor(model => model.CountryList)
        @Html.ValidationMessageFor(model => model.CountryList)
    </div>
</div>

失败了,我找了几个我不使用javascript的示例。最后,我只想学习如何实现Dropdownlist并将其保存到我尝试在MVC5中失败的方法的数据库分配中。

2 个答案:

答案 0 :(得分:0)

我建议您添加一个HTML扩展方法,该方法可为通用枚举器实现dropdownlist。看看this answer

答案 1 :(得分:0)

绑定国家/地区的视图稍有变化

这实际上是您写的

 public static void main(String[] args) { 
    printLeftTriange(0);

  }

  public static void printLeftTriange(int a) {

    for (int i=0; i<a+1 ; i++) {
      for (int j=0; j<i; j++) {
        System.out.print("*");
      }
      System.out.println("");
    }
  }

更改时需要在您的国家列表中添加名称属性(它必须是您在模型中采用的ID),因此必须这样才能保持国家列表值

 @Html.EnumDropDownListFor(model => model.CountryList)

因为每个HTML控件都需要唯一的标识符