你好,有编码员,
我对ASP.Net MVC很陌生,我发现很难弄清楚如何使用来自不同实体的数据进行计算。
所以我有3个表及其相应的属性:
演示
视频
付款
Presenter已作为外键链接到付款和视频。
所以这些表是在SQL中创建的。这些模型已在Visual Studio 2015中相应创建。 我还使用脚手架来创建控制器。
现在,当我尝试在付款表中创建新条目时,我的问题就出现了。
基本上,需要发生的是所有付款属性应该通过使用来自其他2个表的数据进行计算来完成,根据选择的Presenter。 付款创建视图中的所有内容都是演示者的DropDownList,以及执行特定演示者付款的按钮。
像这样:
我发现很难在网上找到帮助我的东西。
我们非常感谢您的帮助,如果您需要任何其他信息,请告知我们。
请在下面找到代码:
付款方式
public partial class Payment
{
public int PaymentId { get; set; }
public double GrossPay { get; set; }
public int PresenterId { get; set; }
public Presenter Presenter { get; set; }
public double calcGrossPay()
{
Video v = new Video();
double gross = 0.0;
gross = (Presenter.MinimumWage + (v.Likes * v.RatePerLike));
return gross;
}
}
视频模型
public partial class Video
{
public int VideoId { get; set; }
public string Title { get; set; }
public int PresenterId { get; set; }
public int Likes { get; set; }
public double RatePerLike { get; set; }
public virtual Presenter Presenter { get; set; }
}
演示者模型
public partial class Presenter
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Presenter()
{
this.Payments = new HashSet<Payment>();
this.Videos = new HashSet<Video>();
}
public int PresenterId { get; set; }
public string Name { get; set; }
public string Contact { get; set; }
public string Email { get; set; }
public double MinimumWage { get; set; }
public double TaxDeduction { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Payment> Payments { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Video> Videos { get; set; }
}
付款管理员(创建)
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "PaymentId,GrossPay,PresenterId")] Payment payment)
{
if (ModelState.IsValid)
{
payment.GrossPay = payment.calcGrossPay();
db.Payments.Add(payment);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.PresenterId = new SelectList(db.Presenters, "PresenterId", "Name", payment.PresenterId);
return View(payment);
}
付款查看(创建)
<div class="form-group">
@Html.LabelFor(model => model.PresenterId, "PresenterId", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("PresenterId", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.PresenterId, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
我似乎无法理解如何相应地定义参数或如何在模型之间解析数据。