Asp.net mvc .net mvc 4 razor Html.checkboxfor的问题
我对上述主题行的使用有两个问题 我需要在一个视图中使用两个强类型模型。我之所以需要两个不同的模型,是因为正在读取的数据来自两个不同的数据库,所以我需要为每个数据库提供一个edmx(实体框架)数据模型 我只想引入一个“模板”和“担保人”的动态列表。返回的项目数量可能会发生明显变化 问题1: 我想将每个复选框设置为“选中”,并为显示设置其名称。这样,我不知道语法是否正确,即使第二个语法没有给我设计时编译错误 问题2: 我遇到的另一个问题是,我需要为每一组复选框使用不同的模型。但是,当我在第二组复选框中设置模型时,第一个模型被忽略(这是有意义的,因为它是最后一个) 如何在同一视图中成功使用每个模型,以便正确设置复选框 代码如下:Asp.net mvc .net mvc 4 razor Html.checkboxfor的问题,asp.net-mvc,entity-framework,checkboxfor,Asp.net Mvc,Entity Framework,Checkboxfor,我对上述主题行的使用有两个问题 我需要在一个视图中使用两个强类型模型。我之所以需要两个不同的模型,是因为正在读取的数据来自两个不同的数据库,所以我需要为每个数据库提供一个edmx(实体框架)数据模型 我只想引入一个“模板”和“担保人”的动态列表。返回的项目数量可能会发生明显变化 问题1: 我想将每个复选框设置为“选中”,并为显示设置其名称。这样,我不知道语法是否正确,即使第二个语法没有给我设计时编译错误 问题2: 我遇到的另一个问题是,我需要为每一组复选框使用不同的模型。但是,当我在第二组复选框
<tr>
<td colspan="5">
<b>@Html.Label("lbl_Templates", "Templates:")</b>
</td>
</tr>
<tr>
@model IEnumerable<PDFConverterModel.PDFTemplate>
@foreach (var item in Model)
{
<td>
@Html.CheckBoxFor(model => true, item.TemplateName)
</td>
}
</tr>
<tr>
<td colspan="5">
<b>@Html.Label("lbl_Guarantor", "Guarantor(s):")</b>
</td>
</tr>
<tr>
@model IEnumerable<PDFConverterModel.tGuarantor>
@foreach (var item in Model)
{
<td>
@Html.CheckBoxFor(model => true, item.GuarantorFirstName + " " + item.GuarantorLastName)
</td>
}
</tr>
下面是我在视图中遇到的问题
因为我要传回一个IEnumerable对象,如果我能在这里发送附件,我有4个屏幕截图来显示我如何使用我的视图
只需说一句,屏幕截图清楚地显示了模板和担保人。它们分别属于IEnumerable ViewModelTemplate_Guarantors.Templates和.Guarantors类型
我只想输入要返回的项的索引,但是我得到了一个设计时编译错误:
无法分别对“System.Collections.Generic.IEnumerable”和tGuarantor类型的表达式应用带[]的索引
称之为101编程,除非我已经精疲力尽了,但是我应该能够为上面的集合应用一个索引变量来取回相应的项,除非我完全忘记了什么
下面我做错了什么
以下是我的看法:
@model IEnumerable<PDFConverterModel.ViewModels.ViewModelTemplate_Guarantors>
@{
ViewBag.Title = "BHG :: PDF Generator";
int ctr = 0;
}
<h2>@ViewBag.Message</h2>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
<table style="width: 1000px">
<tr>
<td colspan="5">
<img alt="BHG Logo" src="~/Images/logo.gif" />
</td>
</tr>
<tr>
<td>
<label for="txtLoanID">Loan ID :</label>
@(Html.Kendo().IntegerTextBox()
.Name("txtLoanID")
.Placeholder("Enter LoanID")
)
<td colspan="3">
<input type="submit" id="btnRefresh" value='Refresh' />
</td>
</tr>
<tr>
<td><@Html.Label("lblLoanType1", "Loan Type : ")</td>
<td><@Html.Label("lblLoanType2", "SBA")</td>
<td></td>
<td>
<label for="ddlDept">Department:</label>
@(Html.Kendo().DropDownList()
.Name("ddlDept")
.DataTextField("DepartmentName")
.DataValueField("DepartmentID")
.Events(e => e.Change("Refresh"))
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetDepartments", "Home");
});
})
)
</td>
</tr>
<tr>
<td colspan="5">
<b>@Html.Label("lbl_Templates", "Templates:")</b>
</td>
</tr>
<tr>
@ctr = 0;
@foreach (var item in Model)
{
<td>
@Html.CheckBoxFor(model => item.Templates[ctr].TemplateName)
@ctr = ctr + 1;
@Html.LabelFor(model => item.Templates[ctr].TemplateName)
</td>
}
</tr>
<tr>
<td colspan="5">
<b>@Html.Label("lbl_Guarantor", "Guarantor(s):")</b>
</td>
</tr>
<tr>
@ctr = 0;
@foreach (var item in Model)
{
<td>
@Html.CheckBoxFor(model => item.Guarantors[ctr].GuarantorFirstName + " " + item.GuarantorLastName)
@ctr = ctr + 1;
@Html.LabelFor(model => item.Guarantors[ctr].GuarantorFirstName + " " + item.GuarantorLastName)
</td>
}
</tr>
<tr>
<td colspan="2"></td>
<td>
@*@using (Html.BeginForm("GeneratePDF", "Home", new { @loanID = loanID }, FormMethod.Post))
{
<input type="submit" id="btnGeneratePDF" value='Generate PDF' />
}*@
</td>
<td colspan="2"></td>
</tr>
<tr>
<td colspan="5">
<b>@ViewBag.Error</b>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</form>
<script type="text/javascript">
$(document).ready(function () {
$("#ddlDept").prepend("<option value='All' selected='selected'></option>");
});
var txtLoanID;
$("#btnRefresh").click(function () {
Refresh();
});
function Refresh() {
var txtLoanID = $("#txtLoanID").val();
if (txtLoanID != "") {
$.post('/Home/Refresh', { loanID: $('#txtLoanID').val(), loanType: $('#lblLoanType2').val, selectedVal: $("#ddlDept option:selected").text() }, function (data) {
data.success;
if (data.success == true) {
if (data.templist == true) {
//show the templates
$("#lbl_Templates").visible = true;
$("#btnGeneratePDF").visible = true;
}
if (data.guarlist == true) {
//show the guarantors
$("#lbl_Guarantor").visible = true;
$("#btnGeneratePDF").visible = true;
}
if ((data.templist == true) && (data.guarlist == true)) {
$("#btnGeneratePDF").visible = true;
}
else {
$("#btnGeneratePDF").visible = false;
}
}
else {
$("#btnGeneratePDF").visible = false;
//hide the templates
$("#lbl_Templates").visible = false;
$("#btnGeneratePDF").visible = false;
//hide the guarantors
$("#lbl_Guarantor").visible = false;
$("#btnGeneratePDF").visible = false;
}
});
}
else {
alert("Please enter a Loan ID.");
}
}
$("#form1").validate({
event: "submit",
rules: {
txtLoanID: {
required: true
}
},
messages: {
txtLoanID: {
required: ' Please enter a Loan ID. '
}
}
});
</script>
@model IEnumerable
@{
ViewBag.Title=“BHG::PDF生成器”;
int ctr=0;
}
@查看包。留言
贷款编号:
@(Html.Kendo().IntegerTextBox())
.名称(“txtLoanID”)
.占位符(“输入LoanID”)
)
{
source.Read(Read=>
{
阅读。行动(“获取部门”、“主页”);
});
})
)
@标签(“lbl_模板”,“模板:”)
@ctr=0;
@foreach(模型中的var项目)
{
@Html.CheckBoxFor(model=>item.Templates[ctr].TemplateName)
@ctr=ctr+1;
@Html.LabelFor(model=>item.Templates[ctr].TemplateName)
}
@Html.标签(“lbl\U担保人”、“担保人”)
@ctr=0;
@foreach(模型中的var项目)
{
@Html.CheckBoxFor(model=>item.Guarantors[ctr].GuarantorFirstName+“”+item.GuarantorLastName)
@ctr=ctr+1;
@Html.LabelFor(model=>item.Guarantors[ctr].GuarantorFirstName+“”+item.GuarantorLastName)
}
@*@使用(Html.BeginForm(“GeneratePDF”,“Home”,new{@loanID=loanID},FormMethod.Post))
{
}*@
@查看包。错误
$(文档).ready(函数(){
$(“#ddldDept”)。前缀(“”);
});
var txtLoanID;
$(“#btnRefresh”)。单击(函数(){
刷新();
});
函数刷新(){
var txtLoanID=$(“#txtLoanID”).val();
如果(txtLoanID!=“”){
$.post('/Home/Refresh',{loanID:$('#txtLoanID').val(),loanType:$('#lblLoanType2').val,selectedVal:$(“#ddldldept选项:selected”).text(),函数(数据){
数据。成功;
if(data.success==true){
if(data.templast==true){
//显示温度
public ViewModelTemplate_Guarantors SelectViewModelTemplate_Guarantors(int LoanId, string LoanTypeId, int DepartmentId)
{
try
{
var model = new ViewModelTemplate_Guarantors();
using (PDFService03Entities DbContext1 = new PDFService03Entities())
{
DbContext1.Database.Connection.Open();
IEnumerable<PDFTemplate> temps = DbContext1.PDFTemplates.Where(p => p.LoanTypeId == Convert.ToInt32(LoanTypeId) && p.DepartmentId == DepartmentId).FromCache(CachePolicy.WithSlidingExpiration(TimeSpan.FromSeconds(30)));
model.Templates = temps.Select(x => new PDFTemplate
{
TemplateId = x.TemplateId.ToString(),
TemplateName = x.TemplateName
});
}
using (VisionEntities DbContext2 = new VisionEntities())
{
DbContext2.Database.Connection.Open();
IEnumerable<tGuarantor> guars = DbContext2.tGuarantors.Where(p => p.ApplicationNum == LoanId).FromCache(CachePolicy.WithSlidingExpiration(TimeSpan.FromSeconds(30)));
model.Guarantors = guars.Select(x => new tGuarantor
{
ApplicationNum = x.ApplicationNum,
GuarantorFirstName = x.GuarantorFirstName,
GuarantorLastName = x.GuarantorLastName
});
}
return model;
}
catch (Exception ex)
{
throw ex;
}
}
ViewModelTemplate_Guarantors tg = db.SelectViewModelTemplate_Guarantors(Convert.ToInt32(loanID), loanType, Convert.ToInt32(selectedVal));
@model IEnumerable<PDFConverterModel.ViewModels.ViewModelTemplate_Guarantors>
@{
ViewBag.Title = "BHG :: PDF Generator";
int ctr = 0;
}
<h2>@ViewBag.Message</h2>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
<table style="width: 1000px">
<tr>
<td colspan="5">
<img alt="BHG Logo" src="~/Images/logo.gif" />
</td>
</tr>
<tr>
<td>
<label for="txtLoanID">Loan ID :</label>
@(Html.Kendo().IntegerTextBox()
.Name("txtLoanID")
.Placeholder("Enter LoanID")
)
<td colspan="3">
<input type="submit" id="btnRefresh" value='Refresh' />
</td>
</tr>
<tr>
<td><@Html.Label("lblLoanType1", "Loan Type : ")</td>
<td><@Html.Label("lblLoanType2", "SBA")</td>
<td></td>
<td>
<label for="ddlDept">Department:</label>
@(Html.Kendo().DropDownList()
.Name("ddlDept")
.DataTextField("DepartmentName")
.DataValueField("DepartmentID")
.Events(e => e.Change("Refresh"))
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetDepartments", "Home");
});
})
)
</td>
</tr>
<tr>
<td colspan="5">
<b>@Html.Label("lbl_Templates", "Templates:")</b>
</td>
</tr>
<tr>
@ctr = 0;
@foreach (var item in Model)
{
<td>
@Html.CheckBoxFor(model => item.Templates[ctr].TemplateName)
@ctr = ctr + 1;
@Html.LabelFor(model => item.Templates[ctr].TemplateName)
</td>
}
</tr>
<tr>
<td colspan="5">
<b>@Html.Label("lbl_Guarantor", "Guarantor(s):")</b>
</td>
</tr>
<tr>
@ctr = 0;
@foreach (var item in Model)
{
<td>
@Html.CheckBoxFor(model => item.Guarantors[ctr].GuarantorFirstName + " " + item.GuarantorLastName)
@ctr = ctr + 1;
@Html.LabelFor(model => item.Guarantors[ctr].GuarantorFirstName + " " + item.GuarantorLastName)
</td>
}
</tr>
<tr>
<td colspan="2"></td>
<td>
@*@using (Html.BeginForm("GeneratePDF", "Home", new { @loanID = loanID }, FormMethod.Post))
{
<input type="submit" id="btnGeneratePDF" value='Generate PDF' />
}*@
</td>
<td colspan="2"></td>
</tr>
<tr>
<td colspan="5">
<b>@ViewBag.Error</b>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</form>
<script type="text/javascript">
$(document).ready(function () {
$("#ddlDept").prepend("<option value='All' selected='selected'></option>");
});
var txtLoanID;
$("#btnRefresh").click(function () {
Refresh();
});
function Refresh() {
var txtLoanID = $("#txtLoanID").val();
if (txtLoanID != "") {
$.post('/Home/Refresh', { loanID: $('#txtLoanID').val(), loanType: $('#lblLoanType2').val, selectedVal: $("#ddlDept option:selected").text() }, function (data) {
data.success;
if (data.success == true) {
if (data.templist == true) {
//show the templates
$("#lbl_Templates").visible = true;
$("#btnGeneratePDF").visible = true;
}
if (data.guarlist == true) {
//show the guarantors
$("#lbl_Guarantor").visible = true;
$("#btnGeneratePDF").visible = true;
}
if ((data.templist == true) && (data.guarlist == true)) {
$("#btnGeneratePDF").visible = true;
}
else {
$("#btnGeneratePDF").visible = false;
}
}
else {
$("#btnGeneratePDF").visible = false;
//hide the templates
$("#lbl_Templates").visible = false;
$("#btnGeneratePDF").visible = false;
//hide the guarantors
$("#lbl_Guarantor").visible = false;
$("#btnGeneratePDF").visible = false;
}
});
}
else {
alert("Please enter a Loan ID.");
}
}
$("#form1").validate({
event: "submit",
rules: {
txtLoanID: {
required: true
}
},
messages: {
txtLoanID: {
required: ' Please enter a Loan ID. '
}
}
});
</script>