使用条件运算符 (IF..ELSE) 时,MVC 局部视图未呈现
MVC Partial view is not rendering when use Conditional operator (IF..ELSE)
我在我的 MVC Partial View
中使用 IF..ELSE
运算符,当我在其中使用 IF..Else..Operator
时,我的局部视图没有呈现,有人知道我该如何解决这个问题吗?
或
我怎样才能用其他方式做到这一点?
错误:"NetworkError: 500 Internal Server Error - http://localhost:50101/TaxRates/EditTaxRates?CountryTaxId=12"
EDIT
我的模型不为空,CountryId也不为空
HTML
<a onclick="editTaxRates(@item.CountryTaxId)"><span class="fa fa-2x fa-edit" style="cursor:pointer; color:black" title='Click to Edit Country'></span></a>
<form id="readIODetail" style="z-index:100">
<div id="divAddCountryRecord" class="modal hide fade " tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false" style="width: 700px; left: 46% !important;">
</div>
</form>
Jquery
function editTaxRates(CountryTaxId) {
var selectedCountryType = $("#selectedCountryType").val();
$.ajax({
type: 'POST',
url: '/TaxRates/EditTaxRates?CountryTaxId=' + CountryTaxId,
success: function (response) {
$("#divAddCountryRecord").empty();
$("#divAddCountryRecord").append(response);
$('#divAddCountryRecord').modal('show');
}
})
}
控制器
public PartialViewResult EditTaxRates(int? CountryTaxId)
{
// conditional code
return PartialView(countryResult);
}
.csHtml(视图)
<div class="modal-body" style="padding-left:10px;overflow-y:auto;">
<div class="row-fluid container">
<div class="span4">
</div>
<div class="row-fluid span12">
<div class="span3">
<p><strong>Country: </strong></p>
</div>
<div class="span5">
@Html.TextBoxFor(m => m.CountryName, new { @readonly = true })
</div>
</div>
<div class="row-fluid span12">
<div class="span3">
<p><strong>Tax-Rate: </strong></p>
</div>
<div class="span5">
@if (Model.CountryId == 1)
{
@Html.TextBoxFor(m => m.TaxRate, new { @id = "C_firstCountry" })
}
else
{
@Html.TextBoxFor(m => m.TaxRate, new { @id = "C_secondCountry" })
}
</div>
</div>
</div>
</div>
感谢您提供宝贵的反馈意见。
为什么不使用条件运算符而不是编写 IF 语句? Here 是它的 MSDN 页面。
所以,我会按如下方式确定 ID,而不是编写您的 IF 语句:
@Html.TextBoxFor(m => m.TaxRate, new { @id = Model.CountryID == 1 ? "C_firstCountry" : "C_secondCountry" })
由于我不确定您是如何加载局部视图的,如果您的局部视图是页面上的静态 "control/view",我只能建议这样做。
@{ Html.RenderPartial("_YourPartialView", Model); }
如果这个 PartialView 是动态加载的,你可以看看使用 jquery 和 ajax。
击打
您的代码中几乎没有错误
当您在 if 条件 @if(Model.CountryId == 1)
中单独使用它时,您不能使用 (Model => Model.CountryName ....)
所以请将您的代码替换为以下代码,它会起作用
<div class="modal-body" style="padding-left:10px;overflow-y:auto;">
<div class="row-fluid container">
@Html.HiddenFor(row => row.CountryTaxId)
<div class="span4">
</div>
<div class="row-fluid span12">
<div class="span3">
<p><strong>Country: </strong></p>
</div>
<div class="span5">
@Html.TextBoxFor(row => row.CountryName, new { @placeholder = "Change the Country Name", @readonly = true })
</div>
</div>
<div class="row-fluid span12">
<div class="span3">
<p><strong>Tax-Rate: </strong></p>
</div>
<div class="span5">
@if (Model.CountryId == 1)
{
@Html.TextBoxFor(row => row.TaxRate, new { @placeholder = "Change the Tax-Rate", @id = "TaxRate" })
}
</div>
</div>
</div>
</div>
我在 if 子句中有一个部分视图。在某些情况下它无法呈现。
出于某种原因,将其更改为
@Html.Partial()
至
@Html.RenderPartial()
已修复。
我现在没有时间也不想进一步研究这个问题,但以下内容可以解释原因:Html.Partial vs Html.RenderPartial & Html.Action vs Html.RenderAction
我在我的 MVC Partial View
中使用 IF..ELSE
运算符,当我在其中使用 IF..Else..Operator
时,我的局部视图没有呈现,有人知道我该如何解决这个问题吗?
或
我怎样才能用其他方式做到这一点?
错误:"NetworkError: 500 Internal Server Error - http://localhost:50101/TaxRates/EditTaxRates?CountryTaxId=12"
EDIT
我的模型不为空,CountryId也不为空
HTML
<a onclick="editTaxRates(@item.CountryTaxId)"><span class="fa fa-2x fa-edit" style="cursor:pointer; color:black" title='Click to Edit Country'></span></a>
<form id="readIODetail" style="z-index:100">
<div id="divAddCountryRecord" class="modal hide fade " tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false" style="width: 700px; left: 46% !important;">
</div>
</form>
Jquery
function editTaxRates(CountryTaxId) {
var selectedCountryType = $("#selectedCountryType").val();
$.ajax({
type: 'POST',
url: '/TaxRates/EditTaxRates?CountryTaxId=' + CountryTaxId,
success: function (response) {
$("#divAddCountryRecord").empty();
$("#divAddCountryRecord").append(response);
$('#divAddCountryRecord').modal('show');
}
})
}
控制器
public PartialViewResult EditTaxRates(int? CountryTaxId)
{
// conditional code
return PartialView(countryResult);
}
.csHtml(视图)
<div class="modal-body" style="padding-left:10px;overflow-y:auto;">
<div class="row-fluid container">
<div class="span4">
</div>
<div class="row-fluid span12">
<div class="span3">
<p><strong>Country: </strong></p>
</div>
<div class="span5">
@Html.TextBoxFor(m => m.CountryName, new { @readonly = true })
</div>
</div>
<div class="row-fluid span12">
<div class="span3">
<p><strong>Tax-Rate: </strong></p>
</div>
<div class="span5">
@if (Model.CountryId == 1)
{
@Html.TextBoxFor(m => m.TaxRate, new { @id = "C_firstCountry" })
}
else
{
@Html.TextBoxFor(m => m.TaxRate, new { @id = "C_secondCountry" })
}
</div>
</div>
</div>
</div>
感谢您提供宝贵的反馈意见。
为什么不使用条件运算符而不是编写 IF 语句? Here 是它的 MSDN 页面。
所以,我会按如下方式确定 ID,而不是编写您的 IF 语句:
@Html.TextBoxFor(m => m.TaxRate, new { @id = Model.CountryID == 1 ? "C_firstCountry" : "C_secondCountry" })
由于我不确定您是如何加载局部视图的,如果您的局部视图是页面上的静态 "control/view",我只能建议这样做。
@{ Html.RenderPartial("_YourPartialView", Model); }
如果这个 PartialView 是动态加载的,你可以看看使用 jquery 和 ajax。
击打
您的代码中几乎没有错误
当您在 if 条件 @if(Model.CountryId == 1)
(Model => Model.CountryName ....)
所以请将您的代码替换为以下代码,它会起作用
<div class="modal-body" style="padding-left:10px;overflow-y:auto;">
<div class="row-fluid container">
@Html.HiddenFor(row => row.CountryTaxId)
<div class="span4">
</div>
<div class="row-fluid span12">
<div class="span3">
<p><strong>Country: </strong></p>
</div>
<div class="span5">
@Html.TextBoxFor(row => row.CountryName, new { @placeholder = "Change the Country Name", @readonly = true })
</div>
</div>
<div class="row-fluid span12">
<div class="span3">
<p><strong>Tax-Rate: </strong></p>
</div>
<div class="span5">
@if (Model.CountryId == 1)
{
@Html.TextBoxFor(row => row.TaxRate, new { @placeholder = "Change the Tax-Rate", @id = "TaxRate" })
}
</div>
</div>
</div>
</div>
我在 if 子句中有一个部分视图。在某些情况下它无法呈现。
出于某种原因,将其更改为
@Html.Partial()
至
@Html.RenderPartial()
已修复。
我现在没有时间也不想进一步研究这个问题,但以下内容可以解释原因:Html.Partial vs Html.RenderPartial & Html.Action vs Html.RenderAction