我想做以下事情: - 在我的aspx页面上加载一个数组(意味着使用EF来过滤请求的结果),这取决于我的下拉列表的选择(客户端)(包含在我的请求结果中传入参数的id)。
我想我不得不通过jquery或类似的东西。
我已经开始搜索解决方案,就像这样。我不确定我是否找到解决方案的好方法。 我对MVC和客户端脚本非常感兴趣,所以我愿意接受任何其他类型的解决方案或任何好的教程,解释我的问题的结果。
<script type="text/javascript" src="/Scripts/jquery-1.5.2.js"></script>
<script type="text/javascript" src="/Scripts/jquery-ui-1.8.11.custom.js"></script>
<script type="text/javascript">
$(function() {
$("#FK_MET_ID").change(function() {
$.get("/Provider/UpdateListProvider", function(data) {
// something must be written here ?
$("#ResultProvider").toggle(); // the div, containing my generated result ?
});
});
});
</script>
<% using (Html.BeginForm("Action", "Post")){%>
<div id="ResultProvider"></div>
<%= Html.DropDownList("FK_MET_ID"); %>
<% } %>
(我使用以下教程开始编码这部分代码:http://www.dotnetcurry.com/ShowArticle.aspx?ID=443)
答案 0 :(得分:0)
你是在正确的方式,你必须添加一些脚本,以使其工作。您需要传入所选值,您应该将控制器代码添加到问题中。也许它更像是一个帖子而不是一个获得,但它超出了这个问题的范围。你返回的数据是什么?我认为您应该使用jquery template来显示您的数据。
$(function() {
$("#FK_MET_ID").change(function() {
$.get("/Provider/UpdateListProvider/" + $(this).val(), function(data) {
if (data) {
$("#contractsTemplate").tmpl(data).appendTo('#contracts');
}
});
});
});
编辑:
最好的方法是与Json合作,在你的控制器中你需要一个像这样的方法:
[HttpPost]
public virtual JsonResult GetContracts(string nameOfTheVariable)
{
var contracts = _session.All<Contract>();//add restriction with the variable
return Json(contracts);
}
在您看来,您可以使用jquery template:
<script id="contractsTemplate" type="test/x-jquery-tmpl">
<li><a href="/contract/${Id}/version/${Version}/edit">${Filename}</a> <span>${Status}</span></li>
</script>
<script type="text/javascript" src="@Links.Content.javascript.jquery_tmpl_min_js"></script>
<script type="text/javascript">
$(function () {
GetContracts();
});
function GetContracts() {
$.ajax({
type: "POST",
url: "/API/GetContracts",
dataType: "json",
success: function (data) {
$('#contracts').empty();
if (data) {
$("#contractsTemplate").tmpl(data).appendTo('#contracts');
}
}
});
}
</script>
您需要在global.ascx中添加一个自定义路由,该路由将指向您所需的操作控制器以及您需要的参数nameOfTheVariable,或者您也可以将其作为查询参数来执行yoururl.com $ action?nameOfTheVariable = “值”
如果您需要更多帮助,请与我联系!