1
我使用jQuery raty插件來評級客戶。我有以下的jQuery代碼創建RATY對象:如何在ASP.NET MVC(剃鬚刀)中設置模型的jQuery屬性
$('.customerRating').raty({
path: '/Content/jQueryRaty/img/',
click: function (score, evt) {
var id = this.attr("ID");
$('input[name="' + id + '"]').val(score);
}
});
HTML結構是以下(用剃刀):
@{
foreach (var customer in (IEnumerable<BL.Model.Customer>)ViewData["Customers"])
{
var id = "bRate_" + customer.ID;
@Html.Hidden(id);
<div id="leftcolumn"><span>@customer.Name</span></div>
<div id="rightcolumn"><span class="customerRating" id="@id"></span</div>
<br/>
}
}
這是創造新的收視率的解決方案。我的問題是我如何做解決方案來編輯評分。我的意思是我想將現有的評級從模型設置爲html。
我目前的解決辦法是:
@{
foreach (var item in Model.CustomerRating)
{
<text>
if (@item.RatingID >= 1)
{
$("#bRate_" + '@item.CustomerID' + "-1").attr("src", "/Content/jQueryRaty/img/star-on.png");
}
if (@item.RatingID >= 2)
{
$("#bRate_" + '@item.CustomerID' + "-2").attr("src", "/Content/jQueryRaty/img/star-on.png");
}
if (@item.RatingID >= 3)
{
$("#bRate_" + '@item.CustomerID' + "-3").attr("src", "/Content/jQueryRaty/img/star-on.png");
}
if (@item.RatingID >= 4)
{
$("#bRate_" + '@item.CustomerID' + "-4").attr("src", "/Content/jQueryRaty/img/star-on.png");
}
if (@item.RatingID >= 5)
{
$("#bRate_" + '@item.CustomerID' + "-5").attr("src", "/Content/jQueryRaty/img/star-on.png");
}
</text>
}
}
這工作得很好,但在我看來太dumy解決方案(如過多的冗餘生成的JavaScript代碼)。
爲一個元件生成的jQuery的RATY碼是:
<span id="bRate_123" class="customerRating">
<img title="bad" alt="1" src="/Content/jQueryRaty/img/star-on.png" id="bRate_123-1">
<img title="poor" alt="2" src="/Content/jQueryRaty/img/star-on.png" id="bRate_123-2">
<img title="regular" alt="3" src="/Content/jQueryRaty/img/star-on.png" id="bRate_123-3">
<img title="good" alt="4" src="/Content/jQueryRaty/img/star-on.png" id="bRate_123-4">
<img title="gorgeous" alt="5" src="/Content/jQueryRaty/img/star-off.png" id="bRate_123-5">
<input type="hidden" id="bRate_123-score" name="score" value="4">
</span>
Jquery的RATY具有這樣的特性,其開始可以設置選擇分的默認數量。它看起來像:
$('.customerRating').raty({
start: @Model.RatingID
});
以這種方式,我可以設置模型中默認的恆星數。我可以爲具體的ID做到這一點,但我怎麼可以設置這個值起始屬性自IEnumerable ...
@foreach (var item in Model.CustomerRating)
?????? set start property .....
我希望這是可以理解的。我將不勝感激任何幫助或其他提示或想法如何解決這個問題。
謝謝。
謝謝你的回答。你的方法似乎很好。它減少了源代碼(通過替換,如果是)。但從生成的代碼角度來看,它是一樣的。 – zosim
Ur正確。在raty中再次調用它有什麼問題? :P –
嗯,看來,這對我來說可能是可以接受的。可能不存在更好的解決方案。我將永遠需要爲每個評級客戶創建raty對象併爲其設置評分。謝謝。 – zosim