表单 – ASP.NET MVC – 如何在发布数据后重新加载相同的视图?

表单 – ASP.NET MVC – 如何在发布数据后重新加载相同的视图?,第1张

概述我有一个包含Google地图的视图,其中包含默认缩放级别和国家/地区的位置设置.在地图上显示的默认位置来自数据库,我所做的是我有[HttpGet]索引 *** 作获取此信息,将其发送到视图,然后在视图中我使用JS绘制地图(只是通常谷歌地图的东西画一个简单的地图). 然后就在地图div上方,我显示了一个文本框和一个搜索按钮.因此,用户键入地址并按下搜索按钮,我将文本框的值发布到[HttpPost]索引 *** 作. 我有一个包含Google地图的视图,其中包含默认缩放级别和国家/地区的位置设置.在地图上显示的默认位置来自数据库,我所做的是我有[httpGet]索引 *** 作获取此信息,将其发送到视图,然后在视图中我使用Js绘制地图(只是通常谷歌地图的东西画一个简单的地图).

然后就在地图div上方,我显示了一个文本框和一个搜索按钮.因此,用户键入地址并按下搜索按钮,我将文本框的值发布到[httpPost]索引 *** 作.现在我想将此值传递给[httpGet] Index *** 作,以便它从DB获取该地址的数据,将其发送到Index视图,以便重新绘制地图,并将该特定地址设置为地图的中心,同时显示文本框中的地址.

有关如何做到这一点的任何建议?

我尝试过的方式(并没有用)是调用Index动作的Get版本并使用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控制器/索引时绘制地图.

文本框和搜索按钮的标记是:

<form  ID="searchForm" action="@Url.Action("Index","Default")" method="post"><div >    <div >        <div >           <label for="address" >Search for address</label>           <input type="text"  ID="address" placeholder="Search for address" name="address">         </div>    <div >    <input type="submit"  value="Search" />    </div>   </div></div></form>

最后这里是httpPost Index动作:

[httpPost]public voID Index(String address){   TempData["address"] = address;   Index();}

因此,当我提交表单时,我希望它被发布到httpPost Index *** 作,然后它将值传递给它的httpGet版本,最终将从DB获取数据并使用更新的地图获取视图.但我所看到的只是一个空白页面.

有帮助吗?

解决方法 像那样

[httpPost]public voID Index(String address){   TempData["address"] = address;   RedirectToAction("Index");}

你看它是空白的,因为你正在重定向RedirectToAction(“索引”);并将数据存储在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();}
总结

以上是内存溢出为你收集整理的表单 – ASP.NET MVC – 如何在发布数据后重新加载相同的视图?全部内容,希望文章能够帮你解决表单 – ASP.NET MVC – 如何在发布数据后重新加载相同的视图?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1047218.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存