asp.net - HttpPost 后显示成功消息
问题描述
我有一个包含注册表单的视图。如果提交了注册表,我想返回到同一个视图并显示一个临时的Bootstrap Well
然后淡出。在我的控制器中检查我的想法
控制器
// Insert User
[HttpPost]
public void AddUser(ResourceViewModel resourceInfo)
{
// Fetch data from ViewModel as parameters Execute Stored Procedure
db_RIRO.sp_InsertNewUser(resourceInfo.Username, resourceInfo.Password);
db_RIRO.SaveChanges()
// My Idea
if (storedProcedure succesful)
{ // display success ViewBag in view }
else
{
// display failed ViewBag in view
}
}
看法
<div class="form-group">
<label class="col-sm-3 control-label lb-sm" for="textinput">Password</label>
<div class="col-sm-5">
@Html.TextBoxFor(a => a.Password, new { @class = "form-control input-sm" })
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label lb-sm" for="textinput">Username</label>
<div class="col-sm-5">
@Html.TextBoxFor(a => a.Username, new { @class = "form-control input-sm" })
</div>
</div>
我将如何使用ViewBag
?
解决方案
您还没有说是否返回到相同的视图,但是在您返回的任何视图中,您都可以将 TempData 打印出来。
这是一个基本示例:
控制器:
[HttpPost]
public void AddUser(ResourceViewModel resourceInfo)
{
// Fetch data from ViewModel as parameters Execute Stored Procedure
db_RIRO.sp_InsertNewUser(resourceInfo.Username, resourceInfo.Password);
db_RIRO.SaveChanges()
// My Idea
if (storedProcedure succesful)
{
// display success tempdata in view
TempData["Message"] = "Data saved successfully";
}
else
{
// display failed tempdata in view
TempData["Message"] = "Sorry, an error has occurred";
}
//...etc
}
查看(将其放置在视图中您喜欢的任何位置):
@if (TempData["Message"] != null)
{
@Html.Raw(TempData["Message"].ToString())
}
这个例子只使用了一个简单的字符串,但如果需要,您可以使用更复杂的数据结构(例如,我想您可能想要为成功/失败设置颜色方案/CSS 类,或者添加 Javascript 来获得诸如淡入淡出效果之类的东西- 你可以把这个脚本放在你的if
语句中。也许考虑创建一个可重用的局部视图和一个“消息”对象作为它的模型,它可以传达所有这些东西,你可以在整个应用程序中使用它。
注意如果您要返回到同一个视图,您始终可以只使用 ViewBag 而不是 TempData - TempData 可能很有用,因为它将在请求之间持续存在,例如,如果您在当前操作结束时重定向到另一个操作,而不是直接返回一个视图。
推荐阅读
- vue.js - 如何使用 moment.js 通过 vue.js 格式化日期?
- xamarin - CollectionView 项目添加中的视频播放器会导致视频帧随机播放 Xamarin Forms
- c++ - 为什么 rapidjson 无法获得这个整数值
- algorithm - Master theorem - 最好的情况大哦?
- javascript - 在 JS 中,如何通过解构另一个函数来重新声明函数参数变量?
- ruby-on-rails - “捆绑安装失败”在灌输 nokogiri (1.10.9) 时发生错误,并且 Bundler 无法在 Cloud9 Ubuntu OS 上运行的 CS50 IDE 上继续
- docker - 自动删除危险图像并同时支持多阶段构建的缓存
- jquery - 用于使用 JQuery 将数据插入 tr td 的 JSON 循环数组
- python - opencv_createsamples:找不到命令
- python - PySerial / Arduino 串行读取和写入文件同时问题