我有一个 MVC 视图,它上面有一个 Bird 的属性 BirdSize。
当鸟的体重或身高选择列表发生变化时,此 BirdSize 属性的值可能会发生变化。
我想要的是在没有完全刷新屏幕的情况下进行此更新,所以我猜是 jquery。
我不是特别想复制 BirdSize 属性代码,只是想按原样使用它。
所以类:
public class Bird
{
public int WeightId { get; set; }
public Weight Weight { get; set; }
public int HeightId { get; set; }
public Height Height { get; set; }
public string BirdSize
{
if(Height == "Tall" && Weight == "Heavy") {
return "Big";
}
else {
return "Small";
}
}
}
然后我有一个视图:
@model Ahb.Insite.HerdRegistration.WebUI.ViewModels.BirdModel
<script src="../../Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="../../Scripts/Views/HerdRegistrationWizard/index.js" type="text/javascript"></script>
<h3>Bird Weight/h3>
<div>
@Html.DropDownListFor(model => model.Bird.WeightId, Model.BirdWeightSelectListItems, new { @id = "weightddl" })
</div>
<h3>Bird Height/h3>
<div>
@Html.DropDownListFor(model => model.Bird.HeightId, Model.BirdHeightSelectListItems, new { @id = "heightddl" })
</div>
<h3> Bird Size</h3>
<div>
@Html.DisplayFor(model => model.Bird.BirdSize)
</div>
所以选择看起来像:
<select id="weightddl">
<option value="1">Light</option>
<option value="2">Medium</option>
<option value="3">Heavy</option>
</select>
<select id="heightddl">
<option value="1">Short</option>
<option value="2">Medium</option>
<option value="3">Tall</option>
</select>
所以我想我会在这些脚本代码中做一些事情:
$('#weightddl').change(function() {
//Do something to update birdsize
});
$('#heightddl').change(function() {
//Do something to update birdsize
});
我不确定最好的方法。我能想到的唯一方法是使用新值发送到服务器方法,该方法将创建一只新鸟并发回该鸟的大小。任何人都知道使此功能正常工作的更好方法吗?
也许你可以使用局部视图?