使用Javascript MVC 3 ASP.NET在主视图中收集的付款的动态部分视图
我是javascript和mvc3的新成员,仅供参考 我一直很难在一个视图中找出多个支付模型,而javascript却没有弄得一团糟 我想做的是: 创建父模型,以便所有子模型都具有来自父模型的一个或两个属性 使用javascript从服务器获取数据以收集和发布数据,而不会在视图上弄乱彼此的付款 如果有一个更简单的方法来收集多笔付款,并返回给控制,请给我一个链接或一些信息进行研究。。。谢谢大家! 在主视图中,我所做的就是显示第一个部分视图和两个按钮(post,添加新付款)。post按钮将付款提交给服务器,新付款添加另一个部分视图付款模型 我遇到的问题是让部分视图与javascript一起工作,javascript只针对第一次付款。我已经查找这个问题好几天了,没有找到一个好的答案。对我来说唯一有意义的答案是更改部分视图中所有元素的id,并让我的javascript引用更新的id,但我不知道如何动态更改id,以便javascript随之更改 我很抱歉,如果我遗漏了什么,我是新来的 付款部分视图:使用Javascript MVC 3 ASP.NET在主视图中收集的付款的动态部分视图,javascript,asp.net,asp.net-mvc,asp.net-mvc-3,Javascript,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我是javascript和mvc3的新成员,仅供参考 我一直很难在一个视图中找出多个支付模型,而javascript却没有弄得一团糟 我想做的是: 创建父模型,以便所有子模型都具有来自父模型的一个或两个属性 使用javascript从服务器获取数据以收集和发布数据,而不会在视图上弄乱彼此的付款 如果有一个更简单的方法来收集多笔付款,并返回给控制,请给我一个链接或一些信息进行研究。。。谢谢大家! 在主视图中,我所做的就是显示第一个部分视图和两个按钮(post,添加新付款)。post按钮将付款提交给
@model SBTools.Models.Payment
@*AJAX TO RETRIEVE BILLING COMPANY LIST DATA*@
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$.ajax({
url: '@Url.Content("~/AddPayments/GetBillingCompanies")',
type: 'POST',
data: {},
success: function (data) {
var items = "<option>Select Billing Company</option>";
$.each(data, function (i, item) {
var val = item.OCN;
var txt = item.OCNDescription;
items += "<option value=" + val + ">" + val + " " + txt + "</option>";
});
$('#OCN').html(items);
}
});
});
</script>
@*AJAX TO RETRIEVE CARRIERNAME LIST
PARAM1: Billing Company OCN*@
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$('#OCN').on("change", function () {
var OCN = $('#OCN').val();
var connectionString = $('#connectionString').val();
$.ajax({
url: '@Url.Content("~/AddPayments/GetConnectionString")',
type: 'POST',
data: { OCN: OCN },
success: function (data) {
$('#connectionString').val(data);
connectionString = data;
$.ajax({
url: '@Url.Content("~/AddPayments/GetGLAccounts")',
type: 'POST',
data: { connectionString: connectionString, OCN: OCN },
success: function (data) {
var items = "";
$.each(data, function (i, item) {
items += "<option value=" + item.ID + "/" + item.AccountNumber + ">GL:" + item.AccountNumber +
"    " + item.AccountName + "</option>";
});
$('#GLAccount').html(items);
}
});
}
});
$.ajax({
url: '@Url.Content("~/AddPayments/GetCarriers")',
type: 'POST',
data: { OCN: OCN },
success: function (data) {
var items = "<option>Select a Carrier</option>";
$.each(data, function (i, item) {
if (item.CIC) {
items += "<option value=" + item.CarrierId + ">" + item.CIC + " CIC  " + item.CarrierName + "</option>";
} else if (item.OCN) {
items += "<option value=" + item.CarrierId + ">" + item.OCN + " OCN  " + item.CarrierName + "</option>";
}
});
$('#CarrierName').html(items);
}
});
});
});
</script>
@*AJAX TO RETRIEVE BAN/INVOICE/AMOUNT DATA
PARAM1: Billing company ocn
PARAM2: Carrier ID*@
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$('#CarrierName').on("change", function () {
var isZeroBalanceShowing = false;
if ($('#isZeroBalanceShowing').prop("checked"))
isZeroBalanceShowing = true;
var carrierID = $('#CarrierName').val();
var ocn = $('#OCN').val();
var connectionString = $('#connectionString').val();
$.ajax({
url: '@Url.Content("~/AddPayments/GetAccount")',
type: 'POST',
data: { ocn: ocn, carrierID: carrierID, connectionString: connectionString, isZeroBalanceShowing: isZeroBalanceShowing },
success: function (data) {
var items = "";
$.each(data, function (i, item) {
var inv = item.Invoice;
var ban = item.BAN;
var initAmnt = item.InitAmount;
var amnt = item.Amount;
var temp = new Date(parseInt(item.BillDisplayDate.replace('/Date(', '')));
var date = temp.getMonth() + 1 + '/' + temp.getDate() + '/' + temp.getFullYear();
items += "<option value=" + inv + "/" + ban + ">" + inv + " : $" + initAmnt + " : " + date + " : $" + amnt + "</option>";
});
$('#BAN').html(items);
}
});
});
});
</script>
@*AJAX TO SHOW ZERO BALANCES IN INVOICE DROPDOWN*@
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$('#isZeroBalanceShowing').click(function () {
var isZeroBalanceShowing = false;
if ($('#isZeroBalanceShowing').prop("checked"))
isZeroBalanceShowing = true;
if ($('#CarrierName').val() != null) {
var carrierID = $('#CarrierName').val();
var ocn = $('#OCN').val();
var connectionString = $('#connectionString').val();
$.ajax({
url: '@Url.Content("~/AddPayments/GetAccount")',
type: 'POST',
data: { ocn: ocn, carrierID: carrierID, connectionString: connectionString, isZeroBalanceShowing: isZeroBalanceShowing },
success: function (data) {
var items = "";
$.each(data, function (i, item) {
var inv = item.Invoice;
var ban = item.BAN;
var amnt = item.Amount;
var initAmnt = item.InitAmount;
var temp = new Date(parseInt(item.BillDisplayDate.replace('/Date(', '')));
var date = temp.getMonth() + 1 + '/' + temp.getDate() + '/' + temp.getFullYear();
items += "<option value=" + inv + "/" + ban + ">" + inv + " : $" + initAmnt + " : " + date + " : $" + amnt + "</option>";
});
$('#BAN').html(items);
}
});
}
});
});
</script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
var amnt = "";
$('#Amount').blur(function () {
if ($('#Amount').val().toString().charAt(0) === '$') {
amnt = $('#Amount').val();
amnt = parseFloat(amnt.substring(1, amnt.length)).toFixed(2);
} else {
amnt = parseFloat($('#Amount').val()).toFixed(2);
}
$('#Amount').val(amnt);
});
$('#Deposit').blur(function () {
if ($('#Deposit').val().toString().charAt(0) === '$') {
amnt = $('#Deposit').val();
amnt = parseFloat(amnt.substring(1, amnt.length)).toFixed(2);
} else {
amnt = parseFloat($('#Deposit').val()).toFixed(2);
}
$('#Deposit').val(amnt);
});
$('#CheckAmount').blur(function () {
if ($('#CheckAmount').val().toString().charAt(0) === '$') {
amnt = $('#CheckAmount').val();
amnt = parseFloat(amnt.substring(1, amnt.length)).toFixed(2);
} else {
amnt = parseFloat($('#CheckAmount').val()).toFixed(2);
}
$('#CheckAmount').val(amnt);
});
});
</script>
@*DATEPICKER FOR DATE RECIEVED*@
<script>
$.datepicker.setDefaults({
constrainInput: true,
dateFormat: 'yyyy/mm/dd',
gotoCurrent: true,
hideIfNoPrevNext: true,
minDate: '-3m',
maxDate: 0,
showOn: 'both'
});
@*DATEPICKER FOR CHECKDATE*@
// To date - default to today's date
$(document).ready(function () {
$('#Date').datepicker({
maxDate: '0',
defaultDate: new Date(),
onSelect: function (dateStr) {
$('#CheckDate').datepicker('option', 'maxDate', $(this).datepicker('getDate') || 0);
}
});
});
$(document).ready(function () {
$('#CheckDate').datepicker({
maxDate: '0',
defaultDate: new Date(),
onSelect: function (dateStr) {
$('#Date').datepicker("option", "maxDate", '+0m +0w');
}
});
});
</script>
<h3>Payment @Html.DisplayFor(x => x.AccountID):</h3>
@Html.HiddenFor(x => x.AccountID, new { id = "ID" })
@Html.HiddenFor(x => x.connectionString, new { id = "connectionString" })
<table id="tblAcct" class="display">
<tr class="spacer" />
<tr>
<td>Billling Company (First**):@Html.ValidationMessageFor(model => model.OCN, " *Select a Value")</td>
<td>Carrier Company (Second**):@Html.ValidationMessageFor(model => model.CarrierName, " *Select a Value")</td>
<td>Deposit Amount:@Html.ValidationMessageFor(model => model.Deposit, " *Enter a Value") </td>
</tr>
<tr>
@*OCN*@
<td>
<select required id="OCN" name="OCN" style="width: 200px;" tabindex="0" ></select></td>
@*CarrierName*@
<td>
<select required id="CarrierName" name="CarrierName" style="width: 200px;"></select></td>
@*DEPOSIT*@
<td>$@Html.TextBoxFor(a => a.Deposit, new { style = "width:200px;" })</td>
</tr>
<tr class="spacer" />
<tr>
<td>Check Date:</td>
<td>Check Amount:@Html.ValidationMessageFor(model => model.CheckAmount, " *Enter a Value")</td>
<td>Check Number:@Html.ValidationMessageFor(model => model.CheckNumber, " *Enter a Value")</td>
</tr>
<tr>
@*CHECKDATE*@
<td>@Html.EditorFor(model => model.CheckDate, new { id = "CheckDate" })
@Html.ValidationMessageFor(model => model.CheckDate, "mm/dd/yyyy")</td>
@*CHECKAMOUNT*@
<td>$@Html.TextBoxFor(a => a.CheckAmount, new { style = "width:200px;" })</td>
@*CHECKNUMBER*@
<td>@Html.TextBoxFor(a => a.CheckNumber, new { style = "width:200px;" })</td>
</tr>
</table>
<table id="tblAcctInvoice" class="display">
<tr class="spacer" />
<tr>
<td>Invoice:             
@Html.CheckBoxFor(model => model.isZeroBalanceShowing, new { id = "isZeroBalanceShowing" }) Zero Balances
@Html.ValidationMessageFor(model => model.Invoice, " *Select a Value")</td>
<td>Payment Date:</td>
<td>Payment Amount:@Html.ValidationMessageFor(model => model.Amount, " *Enter a Value")</td>
<td>GL Account:@Html.ValidationMessageFor(model => model.GLAccount, " *Select a Value")</td>
</tr>
<tr>
@*BAN*@
<td>
<select required id="BAN" name="Invoice" style="width: 351px;"></select></td>
@*PAYMENT DATE*@
<td>
<div class="Date">
@Html.EditorFor(model => model.Date, new { id = "Date" })
@Html.ValidationMessageFor(model => model.Date, "mm/dd/yyyy")
</div>
</td>
@*PAYMENT AMOUNT*@
<td>
<div class="currency">
$@Html.TextBoxFor(a => a.Amount, new { style = "width:150px;", id = "Amount" })
</div>
</td>
@*GLACCOUNT*@
<td>
<select required id="GLAccount" name="GLAccount" style="width: 200px;"></select></td>
</tr>
</table>
<table id="tblAcctComment" class="display">
<tr>
<td>Comments:       
@*ISSERVICEBUREAU*@
@Html.CheckBoxFor(a => a.isServiceBureauCollection, new { @checked = "checked" }) Service Bureau Collection:</td>
</tr>
<tr>
<td>
@Html.TextAreaFor(a => a.Comment, new { style = "width:99%; height: 20px;" })
</td>
</tr>
</table>
@model SBTools.Models.Payment
@*AJAX用于检索计费公司列表数据*@
$(文档).ready(函数(){
$.ajax({
url:“@url.Content(“~/AddPayments/GetBillingCompanys”),
键入:“POST”,
数据:{},
成功:功能(数据){
var items=“选择计费公司”;
$。每个(数据、功能(i、项){
var val=item.OCN;
var txt=item.ocn说明;
项目+=“”+val+“”+txt+“”;
});
$('#OCN').html(项目);
}
});
});
@*检索CARRIERNAME列表的AJAX
参数1:计费公司OCN*@
$(文档).ready(函数(){
$('#OCN')。关于(“更改”,函数(){
var OCN=$('#OCN').val();
var connectionString=$('#connectionString').val();
$.ajax({
url:“@url.Content(“~/AddPayments/GetConnectionString”),
键入:“POST”,
数据:{OCN:OCN},
成功:功能(数据){
$('#connectionString').val(数据);
connectionString=数据;
$.ajax({
url:“@url.Content(“~/AddPayments/GetGLAccounts”),
键入:“POST”,
数据:{connectionString:connectionString,OCN:OCN},
成功:功能(数据){
var项目=”;
$。每个(数据、功能(i、项){
项目+=“总帐:”+项目.AccountNumber+
“ ; ; ”+item.AccountName+”;
});
$('#GLAccount').html(项目);
}
});
}
});
$.ajax({
url:“@url.Content(“~/AddPayments/GetCarriers”),
键入:“POST”,
数据:{OCN:OCN},
成功:功能(数据){
var items=“选择承运商”;
$。每个(数据、功能(i、项){
若有(CIC项){
items+=“item.CIC+”CIC ;“+item.CarrierName+”;
}否则,如果(项目OCN){
items+=“item.OCN+”OCN ;“+item.CarrierName+”;
}
});
$('#CarrierName').html(项目);
}
});
});
});
@*用于检索禁令/发票/金额数据的AJAX
参数1:计费公司ocn
参数2:载波ID*@
$(文档).ready(函数(){
$('#CarrierName')。关于(“更改”,函数(){
var为零平衡显示=假;
if($('#isZeroBalanceShowing').prop(“选中”))
isZeroBalanceShowing=真;
var carrierID=$('#CarrierName').val();
var ocn=$('#ocn').val();
var connectionString=$('#connectionString').val();
$.ajax({
url:“@url.Content(“~/AddPayments/GetAccount”),
键入:“POST”,
数据:{ocn:ocn,carrierID:carrierID,connectionString:connectionString,isZeroBalanceShowing:isZeroBalanceShowing},
成功:功能(数据){
var项目=”;
$。每个(数据、功能(i、项){
var inv=项目。发票;
var ban=item.ban;
var initAmnt=item.InitAmount;
var amnt=项目金额;
var temp=新日期(parseInt(item.BillDisplayDate.replace('/Date(',''));
变量日期=临时getMonth()+1+'/'+临时getDate()+'/'+临时getFullYear();
项目+=“+inv+”:$“+initAmnt+”:“+date+”:$“+amnt+”;
});
$('#BAN').html(项目);
}
});
});
});
@*AJAX在发票下拉列表中显示零余额*@
$(文档).ready(函数(){
$('#isZeroBalanceShowing')。单击(函数(){
var为零平衡显示=假;
if($('#isZeroBalanceShowing').prop(“选中”))
isZeroBalanceShowing=真;
if($('#CarrierName').val()!=n