-1
我正在製作一個MVC應用程序。我正在創建一個使用ViewModel的視圖,並且在該視圖中使用由控制器傳遞的數據庫實體。
控制器:mvc多個模型的視圖
public ActionResult AddGroup(AddGroupViewModel model)
{
ClassDeclarationsDBEntities1 entities=new ClassDeclarationsDBEntities1();
return View(entities.Subjects.ToList());
}
視圖模型:
public class AddGroupViewModel
{
[Required]
[Display(Name = "Subject")]
public string subject_name { get; set; }
[Required]
[Display(Name = "Number of Groups")]
public int qty { get; set; }
}
最後我的看法:
@model List<ClassDeclarationsThsesis.Classes.Subject>
@model ClassDeclarationsThsesis.Models.AddGroupViewModel
@{
ViewBag.Title = "Add Groups";
}
<h2>Add Groups to subjects</h2>
@using (Html.BeginForm("AddGroup", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Create new groups.</h4>
<hr />
@Html.ValidationSummary("", new { @class = "text-danger" })
<div class="form-group">
@{
List<SelectListItem> listItems1 = new List<SelectListItem>();
}
@foreach (var subject in Model)
{
listItems1.Add(new SelectListItem
{
Text = subject.name,
Value = subject.name,
Selected = true
});
}
@Html.LabelFor(m => m.subject_name, new {@class = "col-md-2 control-label"})
<div class="col-md-10">
@Html.DropDownListFor(m => m.subject_name, listItems1, new {@class = "form-control"})
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.qty, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.qty, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Submit" />
</div>
</div>
}
正如你看到的,我想在我看來,使用兩種車型。但給出一個例外(以及如何區分它們)。如何在視圖中結合這兩種模型?
編輯:
所以,我沒有回答什麼建議,但現在我得到這樣的例外:
{"The class 'ClassDeclarationsThsesis.Models.Subject' has no parameterless constructor."}
類看起來是這樣的:
namespace ClassDeclarationsThsesis.Models
{
using System;
using System.Collections.Generic;
public partial class Subject
{
private int v;
private int userid;
public Subject(int v, int userid, string name)
{
this.class_id = v;
this.user_id = userid;
this.name = name;
}
public int class_id { get; set; }
public int user_id { get; set; }
public string name { get; set; }
public virtual Group Group { get; set; }
public virtual Subjects_Users Subjects_Users { get; set; }
public virtual Task Task { get; set; }
}
}
如何解決這個問題呢?
在'List'類型的'AddGroupViewModel'上創建屬性?或者創建一個具有這兩種類型屬性的視圖模型並使用它?您只能使用一種類型,不過您可以自定義該類型。 –
David
@David是的,但我如何從數據庫傳遞數據(通過控制器傳遞)? –
從你已經擁有並且已經用來獲取數據的「實體」對象... – David