我想創建一個鏈接到多個表的視圖。根據我的理解,我需要創建一個View Model並將其鏈接到頁面。開始與空視圖模型MVC
我得到以下
「PaymentViewModel」是一種類型,這是不是在給定的範圍內有效使用了幾個錯誤。
表達式樹不能包含動態操作(與第一個錯誤?)
我是新來的MVC - 來自ASP ....任何幫助表示讚賞
public class PaymentViewModel
{
public string playername { get; set; }
public DateTime dob { get; set; }
public string phone { get; set; }
public string email { get; set; }
public string clubname { get; set; }
public string productname { get; set; }
public decimal amount { get; set; }
public int transactionID { get; set; }
public bool approved { get; set; }
public string subtype { get; set; }
public DateTime subdate { get; set; }
}
控制器
我需要從空白視圖開始,因爲這是註冊播放器的第一步,因此信息不在數據庫中。
下面是我用來獲取填充視圖的代碼。
public ActionResult Payment()
{
DateTime blank = Convert.ToDateTime("01-01-1900");
var prod = from p in db.Product
join c in db.Club on p.clubname equals c.clubname
where p.clubname == "Club1"
select new PaymentViewModel
{
productname = p.prodname,
clubname = c.clubname,
playername = c.add1,
dob = blank,
phone = c.phone,
email = c.email,
transactionID = 0,
amount = p.amount,
approved = Convert.ToBoolean("1"),
subtype = c.city,
subdate = blank
};
return View(prod);
}
查看
@S4C.BAL.PaymentViewModel;
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Player Name</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
<b class="control-label col-md-2" style="">Full Name</b>
<div class="col-md-10">
@Html.EditorFor(model => model.playername, new { htmlAttributes = new { autofocus = "autofocus", @maxlength = "25", @class = "form-control" } })
@Html.ValidationMessageFor(model => model.playername, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<br /><br />
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
</div>
}
<div>@Html.ActionLink("Back to List", "Index")</div>
@section Scripts {@Scripts.Render("~/bundles/jqueryval")}
你的視圖需要'@model S4C.BAL.PaymentViewModel'(但在你的'付款代碼()'方法,因爲查詢創建PaymentViewModel'的'集合拋出另一個異常,你傳遞一個到一個視圖期待單'PaymentViewModel' –
謝謝斯蒂芬如何創建PaymentViewModel的一個空白實例 – Rob
在您的控制器GET方法你可以使用'返回查看();?'(或更好,'返回查看(新PaymentViewModel()) ;') –