gpt4 book ai didi

asp.net-mvc - 刷新asp.net mvc页面

转载 作者:行者123 更新时间:2023-12-05 01:30:34 31 4
gpt4 key购买 nike

我在 ASP.NET MVC 上有一些应用程序。我正在尝试创建表过滤器。页面非常困难,所以我无法从 JSON 响应中获取数据。我正在尝试通过带有参数的调用操作来获取它。

   function refresh() {
var id = $("#list").val();
var params = { id: id };
$.get("/Home/Index", params, null, "json");

}

<select id="list" onchange="refresh()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<%foreach (var i in (IEnumerable<int>)ViewData["list"])
{ %>
<%=i %><br />
<%} %>

public ActionResult Index(int? id)
{
if (id == null)
id = 0;

ViewData["list"] = Enumerable.Range((int)id, 5).Select(i => i).ToList<int>();

return View();
}

但我没有看到新数据。怎么了?我怎样才能刷新页面?

PS 我的意思是我想从操作 A 转到(重定向)到操作 A(带参数)。我不想在客户端重建页面

最佳答案

您没有对通过 get 检索到的结果执行任何操作称呼。另外,由于您要返回 View ,因此应该将数据类型设置为 html .

 $.get('/Home/Index', params, function(html) {
$('body').html(html);
},'html');

我注意到我可能只会替换更新的部分。您可以通过使用部分 View 来仅保存该部分来完成此操作,然后当您通过 AJAX 收到请求时,您可以仅返回部分 View 而不是完整 View 。我要做的另一件事是将 View 强类型化为 IEnumerable<int>并传递模型,而不是使用 View 数据。

查看

<script type="text/javascript">
$(function() {
$('#list').change( function() {
var id = $("#list").val();
var params = { id: id };
$.get("/Home/Index", params, function(html) {
$('#listResults').replaceWith(html)
}, "html");
});
});
</script>

<select id="list">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<% Html.RenderPartial( "ListResults" ); %>

部分 View

<div id="listResults">
<%foreach (var i in Model)
{ %>
<%=i %><br />
<%} %>
</div>

行动

public ActionResult Index(int? id)
{
if (id == null)
id = 0;

var model = Enumerable.Range((int)id, 5).Select(i => i).ToList<int>();
if (this.Request.IsAjaxRequest())
{
return PartialView(model);
}
return View(model);
}

关于asp.net-mvc - 刷新asp.net mvc页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4423919/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com