Asp.net MVC 中 一个HttpPost后 View中的数据全部没有了 有没有什么方法可以设置保存它的数据状态不丢失在
答案:2 悬赏:0 手机版
解决时间 2021-03-11 10:48
- 提问者网友:niaiwoma
- 2021-03-11 01:19
个HttpPost后
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-03-11 01:29
你可以用DataBinder来保存需要传递的数据, 这样在POST之后表单里的信息还是在的
例如,有个表单要提交姓名和电邮
1. ViewModel是
Public class UserModel{
public Name{get; set;}
public Email{get; set;}
}
2. Controller Action是, 假设你Get 和 Post 都是用一个View, 模拟asp.net的postback
public ActionResult Profile(){
// 因为是共享一个VIEW所以这里返回一个空的view model防止报错
Return View(new UserModel());
}
[HttpPost]
public ActionResult Profile(UserModel model){
//在提交表单的时候MVC会自动填充model里相应的字段,这就是DataBinder
.....
//在这里返回model到View, 再把model里的值付给表单里的姓名和电邮就好了
Return View(model);
}
3. View
<% using (Html.BeginForm()){ %>
姓名: <%= Html.TextBox("Name", Model.Name) %>
电邮: <%= Html.TextBox("Email", Model.Email) %>
<% } %>
例如,有个表单要提交姓名和电邮
1. ViewModel是
Public class UserModel{
public Name{get; set;}
public Email{get; set;}
}
2. Controller Action是, 假设你Get 和 Post 都是用一个View, 模拟asp.net的postback
public ActionResult Profile(){
// 因为是共享一个VIEW所以这里返回一个空的view model防止报错
Return View(new UserModel());
}
[HttpPost]
public ActionResult Profile(UserModel model){
//在提交表单的时候MVC会自动填充model里相应的字段,这就是DataBinder
.....
//在这里返回model到View, 再把model里的值付给表单里的姓名和电邮就好了
Return View(model);
}
3. View
<% using (Html.BeginForm()){ %>
姓名: <%= Html.TextBox("Name", Model.Name) %>
电邮: <%= Html.TextBox("Email", Model.Email) %>
<% } %>
全部回答
- 1楼网友:山君与见山
- 2021-03-11 02:46
html.actionlink("链接文字","action",new {参数1="ddc",参数2="333"})
这么些就行
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯