gpt4 book ai didi

forms - ASP.NET MVC-发布数据后如何重新加载相同的 View ?

转载 作者:行者123 更新时间:2023-12-04 22:30:22 25 4
gpt4 key购买 nike

我有一个 View ,其中包含带有默认缩放级别和在国家/地区上设置的位置的Google map 。 map 上显示的默认位置来自数据库,我要做的是我有一个[HttpGet] Index操作,该操作会获取此信息,将其发送到 View ,然后在 View 中使用JS绘制 map (通常谷歌 map 的东西来绘制一个简单的 map )。

然后在 map div上方,显示一个文本框和一个搜索按钮。因此,用户键入一个地址并按下搜索按钮,我将文本框的值发布到[HttpPost] Index操作中。现在,我想将此值传递给[HttpGet] Index操作,以便它从数据库中获取该地址并从该数据中获取数据,将其发送到Index View ,以便使用该特定地址设置为 map 中心重绘 map ,在文本框中也显示地址。

关于如何执行此操作的任何建议?

我尝试过的方法(并且不起作用)是调用“获取版本的索引”操作,然后使用TempData字典将地址传递给它。但是我所看到的只是一个空白页面。

这是我的HttpGet Index操作的外观:

[HttpGet]
public async Task<ActionResult> Index()
{
// I fetch the info from DB here put it inside ViewBag and call the view
return View();
}

这样可以正确加载信息,并在第一次在浏览器中命中URL Controller /索引时按原样绘制 map 。

文本框和搜索按钮的标记为:
<form class="form" id="searchForm" action="@Url.Action("Index", "Default")" method="post">
<div class="form-group">
<div class="row">
<div class="col-xs-9 col-sm-9 col-md-10">
<label for="address" class="sr-only">Search for address</label>
<input type="text" class="form-control" id="address" placeholder="Search for address" name="address">
</div>
<div class="col-xs-3 col-sm-3 col-md-2">
<input type="submit" class="btn btn-block btn-success" value="Search" />
</div>
</div>
</div>
</form>

最后是HttpPost Index操作:
[HttpPost]
public void Index(String address)
{
TempData["address"] = address;
Index();
}

因此,当我提交表单时,我希望将其发布到HttpPost Index操作中,然后将值传递给它的HttpGet版本,该版本最终将从DB获取数据并获取具有更新 map 的 View 。但是我所看到的只是一个空白页。

有什么帮助吗?

最佳答案

像那样

[HttpPost]
public void Index(String address)
{
TempData["address"] = address;
RedirectToAction("Index");
}

您看到它为空,因为您正在重定向 RedirectToAction("Index");并将数据存储在TempData中,并且您未在索引Get方法中使用它
[HttpGet]
public async Task<ActionResult> Index()
{
// I fetch the info from DB here put it inside ViewBag and call the view
// you must check for the temp data
if (!string.IsNullOrWhiteSpace(TempData["address"].ToString()))
{
ViewBag["result"] = TempData["address"];
//and use you viewbag data in the view
}
return View();
}

关于forms - ASP.NET MVC-发布数据后如何重新加载相同的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29674684/

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