我有一个如下所示的下拉列表,其中仅显示用户名及其值的列表:
@Html.DropDownListFor(m => m.SelectedUser,
Model.UsersSelectList,
"-- Select One --",
new { onChange = "users_onchange();" })
并且 javascript 如下,当项目更改时会调用一个动作:
function users_onchange() {
var selectedUserId = $('#SelectedUser').val();
if (selectedUserId == "") {
selectedUserId = 0;
}
$('#EmailAccountsContainer')
.load('/MyEntityController/EmailAccounts', { userId: selectedUserId });
}
而 EmailAccountsContainer 只是一个 div:
<div id="EmailAccountsContainer"></div>
并且 EmailAccounts Action 接受 userId 并返回显示另一个下拉列表的部分视图。
问题是对 Action 的调用仅在第一次更改用户下拉列表后发生。如果选择了第二个用户,则不会调用该操作。
我也拒绝了控制器上的缓存:
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public class MyEntityController : Controller
如何解决这个问题?