Javascript 使用Ajax MVC4更新div
我似乎不明白在选择了一个类别之后如何更新一组项目。我已经走了这么远,现在很困惑。如何将视图中的值输入控制器以进行查询Javascript 使用Ajax MVC4更新div,javascript,jquery,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc 4,我似乎不明白在选择了一个类别之后如何更新一组项目。我已经走了这么远,现在很困惑。如何将视图中的值输入控制器以进行查询 //get <li> clicked and display the items in that category $(document).ready(function() { $('#test li').click(function() { var selector = "input[name='" + $(this).id + "value']";
//get <li> clicked and display the items in that category
$(document).ready(function() {
$('#test li').click(function() {
var selector = "input[name='" + $(this).id + "value']";
var catID = $(selector).val();
$.ajax({
url: "...",
type: "get",
data: {//return all the item info},
success: function(data) {
//update div contents here?
}
});
});
});
我在这里回答了一个非常类似的问题,尽管示例使用的是PHP。然而,基本思想是相同的。MVC4将返回一些将转换为HTML的数据类型(最简单的方法是直接返回HTML),然后将此HTML值附加到DOM元素(在本例中,是您选择的div项) JQuery看起来也很相似:
var request = $.ajax({
type: "POST",
url: "example.php",
data: data_obj,
dataType: "html"
}).done(function(msg) {
$("#example_element").append(msg);
}
我在这里回答了一个非常类似的问题,尽管示例使用的是PHP。然而,基本思想是相同的。MVC4将返回一些将转换为HTML的数据类型(最简单的方法是直接返回HTML),然后将此HTML值附加到DOM元素(在本例中,是您选择的div项) JQuery看起来也很相似:
var request = $.ajax({
type: "POST",
url: "example.php",
data: data_obj,
dataType: "html"
}).done(function(msg) {
$("#example_element").append(msg);
}
而不是两个li
<li>@item.item_name</li>
<li><input type="hidden" class="item_id" value="@item.ID" /></li>
而不是两个li
<li>@item.item_name</li>
<li><input type="hidden" class="item_id" value="@item.ID" /></li>
使用Ajax.BeginForm,如下所示:
@使用(Ajax.BeginForm(“Index”,“Home”,新的AjaxOptions{HttpMethod=“POST”,UpdateTargetId=“youDivId”}))
使用上述方法并使控制器返回空间视图将使用部分视图结果更新div,如下所示:
@使用(Ajax.BeginForm(“Index”,“Home”,新的AjaxOptions{HttpMethod=“POST”,UpdateTargetId=“youDivId”}))
使用上述方法并使控制器返回
空间视图
将使用局部视图结果更新div
因此,当我调用控制器中的函数来过滤结果时,ajax的id是否会被传递?这var catID=$(选择器).val()代码>传递到此公共操作结果PartialTwo(int-id)
中,我可以使用InsertionMode替换吗?阿贾沙赫还是个新手,我道歉。你的头衔让我觉得你在这个问题的ajax部分。您是否在询问如何将catID获取到查询中?因此,当我调用控制器中的函数来过滤结果时,ajax的id会被传递?这var catID=$(选择器).val()代码>传递到此公共操作结果PartialTwo(int-id)
中,我可以使用InsertionMode替换吗?阿贾沙赫还是个新手,我道歉。你的头衔让我觉得你在这个问题的ajax部分。您是在问如何将catID用于您的查询吗?是的!这就是我一直想弄明白的。所以我不需要所有的AjaxOption,比如数据、数据类型等?不,实际上这取决于需求,但如果你只想从url加载html结果,你不需要,你知道我在哪里可以找到更多关于这个的信息吗?似乎每个教程都只讨论ajax操作链接和表单。我似乎找不到这种材料不,对不起,我不知道有关它的任何具体材料。但是,如果您知道的足够多,您不需要使用可以通过jQuery处理的帮助程序。好的,谢谢。还有一件事。我应该将控制器添加到url请求的前面吗var requestPage=“Item/PartialTwo?id=“+$(this).data(“id”)代码>是!这就是我一直想弄明白的。所以我不需要所有的AjaxOption,比如数据、数据类型等?不,实际上这取决于需求,但如果你只想从url加载html结果,你不需要,你知道我在哪里可以找到更多关于这个的信息吗?似乎每个教程都只讨论ajax操作链接和表单。我似乎找不到这种材料不,对不起,我不知道有关它的任何具体材料。但是,如果您知道的足够多,您不需要使用可以通过jQuery处理的帮助程序。好的,谢谢。还有一件事。我应该将控制器添加到url请求的前面吗var requestPage=“Item/PartialTwo?id=“+$(this).data(“id”)代码>
<li data-id="@item.ID">@item.item_name</li>
$("#test li").on("click",function(){
var requestPage = "/PartialTwo?id=" + $(this).data("id");
$.get(requestPage, function(result){
$("#content").html(result); // where you want to put the result
});
});