【问题标题】:Do I need a custom ViewMode (MVVM)?我需要自定义 ViewMode (MVVM) 吗?
【发布时间】:2015-08-26 11:42:19
【问题描述】:

我是 ASP.Net MVC 的新手

我想显示一个不同的视图来选择一所学校和一个查伦,然后插入所选查伦的 ID 和所有学生的 ID(所选学校的)要插入到加入表中,即。 ChallanAndStudents 表

我有以下实体

tbl.FeeChallan, 

tbl.Students (Students belong to different schools),

tbl.ChallanAndStudents (the joining Table of tbl.FeeChallan and tbl.Students )

tbl.Schools 

联接表有一个StudentIDFeeChallanID

正如业务逻辑所说:FeeChallans 可以来自单个学生或整个学校。

在选择整个学校的情况下,我将允许用户从 DropDownList 中选择 School,并从第二个 DropDownList 中选择 ChallanNumber。

然后在提交时,我必须插入ChallanFormIDStudentID(所选学校的所有学生到加入表中)

查看模式:

public class vmAssignChallanToWholeSchool
{
    public int ChallanFormID { get; set; }
    public int SchoolID { get; set; }   
}

控制器:

public ActionResult AssignChallanToSchool()
    {
        vmAssignChallanToWholeSchool ChallanToSchool = new vmAssignChallanToWholeSchool();



    ViewBag.ChallanForm = new SelectList(db.ChallanForm.ToList(), "ChallanFormID", "ChallanFormNumber", ChallanToSchool.ChallanFormID);
    ViewBag.Schools = new SelectList(db.Schools, "ID", "Name", ChallanToSchool.SchoolID);

    return View();


}

查看:

@model EBS_MVC.ViewModels.vmAssignChallanToWholeSchool
@{
    ViewBag.Title = "AssignChallanToSchool";
}

<h2>AssignChallanToSchool</h2>


<div class="form-group">
    @Html.LabelFor(model => model.ChallanFormID, "ChallanID", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.DropDownList( "ChallanForm", new SelectList(ViewBag.ChallanForm))
        @Html.ValidationMessageFor(model => model.ChallanFormID, "", new { @class = "text-danger" })
    </div>
</div>

我是否需要一个自定义 ViewModel 来完成这项工作,就像上面提到的那样?

Hit and Try 列表:

EntityType: EntitySet 'vmAssignChallanToWholeSchools' 基于类型 没有定义键的“vmAssignChallanToWholeSchool”。 在此处输入图片说明

System.Web.HttpException:数据绑定: “System.Web.Mvc.SelectListItem”不包含具有 名称“ChallanFormID”。

【问题讨论】:

    标签: c# asp.net asp.net-mvc entity-framework


    【解决方案1】:

    如果我理解正确,那么 Challan 就是有人参加学校的活动。

    因此,我认为如果您在 ChallanController 中执行所有操作,整个设置会更容易。然后一个简单的 Add 将在正确的控制器中完成您想要的操作。

    【讨论】:

    • 将单个 Challan 保存 (CRUD) 到单个学生在加入表中工作正常。我想显示一个不同的视图来选择一所学校和一个查伦,然后插入所选查伦的 ID 和所选学校的所有学生的 ID,以插入到上述加入表中。
    • Singe student 可以多于 One Challan,Singe Challan 可以多于 One Student(多对多)
    • 好的,我的建议是制作一个 ChallanAndStudentsController。 (找一个更好的词,比如参与或其他)。与使用其他控制器相比,这为您提供了一些优势。否则我真的没有什么好的建议。
    猜你喜欢
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多