实现HTTP-POST的Edit Action方法(转)
2010-07-15 14:48
281 查看
实现HTTP-POST的Edit Action方法
1. [AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection formValues) {}
表示该方法负责处理HTTP POST动作。
2. 获取表单提交的值
一个简单的办法是使用Controller基类的Request属性来访问form集合,并直接获取提交的参数值:
public ActionResult Edit(int id, FormCollection formValues)
{
// Retrieve existing dinner
Dinner dinner = dinnerRepository.GetDinner(id);
// Update dinner with form posted values
dinner.Title = Request.Form["Title"];
dinner.Description = Request.Form["Description"];
dinner.EventDate = DateTime.Parse(Request.Form["EventDate"]);
dinner.Address = Request.Form["Address"];
dinner.Country = Request.Form["Country"];
dinner.ContactPhone = Request.Form["ContactPhone"];
// Persist changes back to database
dinnerRepository.Save();
// Perform HTTP redirect to details page for the saved Dinner
return RedirectToAction("Details", new { id = dinner.DinnerID });
}
3. 使用Controller 基类的内置方法UpdateModel()。该方法支持使用传入的表单参数更新对象的属性,它使用反射机制来解析对象的属性名称,接着基于客户端传入的参数值自动赋值给对象相关属性。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection formValues)
{
// Retrieve existing dinner
Dinner dinner = dinnerRepository.GetDinner(id);
UpdateModel(dinner);
// Persist changes back to database
dinnerRepository.Save();
// Perform HTTP redirect to details page for the saved Dinner
return RedirectToAction("Details", new { id = dinner.DinnerID });
}
4. 异常处理机制说明:
try {}
catch
{
foreach (var issue in dinner.GetRuleViolations())
{
ModelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
}
return View(dinner);
}
在catch代码块中,首先遍历Dinner对象中所有规则冲突,并添加到ModelState对象中,接着重新显示视图。
1. [AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection formValues) {}
表示该方法负责处理HTTP POST动作。
2. 获取表单提交的值
一个简单的办法是使用Controller基类的Request属性来访问form集合,并直接获取提交的参数值:
public ActionResult Edit(int id, FormCollection formValues)
{
// Retrieve existing dinner
Dinner dinner = dinnerRepository.GetDinner(id);
// Update dinner with form posted values
dinner.Title = Request.Form["Title"];
dinner.Description = Request.Form["Description"];
dinner.EventDate = DateTime.Parse(Request.Form["EventDate"]);
dinner.Address = Request.Form["Address"];
dinner.Country = Request.Form["Country"];
dinner.ContactPhone = Request.Form["ContactPhone"];
// Persist changes back to database
dinnerRepository.Save();
// Perform HTTP redirect to details page for the saved Dinner
return RedirectToAction("Details", new { id = dinner.DinnerID });
}
3. 使用Controller 基类的内置方法UpdateModel()。该方法支持使用传入的表单参数更新对象的属性,它使用反射机制来解析对象的属性名称,接着基于客户端传入的参数值自动赋值给对象相关属性。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection formValues)
{
// Retrieve existing dinner
Dinner dinner = dinnerRepository.GetDinner(id);
UpdateModel(dinner);
// Persist changes back to database
dinnerRepository.Save();
// Perform HTTP redirect to details page for the saved Dinner
return RedirectToAction("Details", new { id = dinner.DinnerID });
}
4. 异常处理机制说明:
try {}
catch
{
foreach (var issue in dinner.GetRuleViolations())
{
ModelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
}
return View(dinner);
}
在catch代码块中,首先遍历Dinner对象中所有规则冲突,并添加到ModelState对象中,接着重新显示视图。
相关文章推荐
- 实现HTTP-POST的Edit Action方法
- 实现HTTP-POST的Edit Action方法
- CURL实现HTTP的GET POST方法
- Android开发 httpclient Post方法实现从tomcat服务器(JSP)获取listview信息
- httpcomponents-client-4.3.5实现http的post请求和get请求方法
- XMLHttpRequestsPOST方法实现AJAX
- 简单的HTTP请求post,get,put,delete,head方法的实现
- java实现:http协议get和post方法的url参数请求响应及交互
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- 通过httpwebrequest实现http的post和get方法莫名出现500内部服务器错误的解决办法
- Linux实用技巧-CURL实现HTTP的GET POST方法
- java实现http的get与post方法
- Angularjs中$http以post请求通过消息体传递参数的实现方法
- 利用IWebBrowser2接口的Navigate2方法实现Http POST传输
- jQuery的ajax()检验用户名;通过jQuery的load()/get()/post()方法实现;使用XMLHTTPRequest对象来进行AJAX的异步数据交互
- java实现http post方法发送数据
- android http-post方法简单实现
- Android HTTP实例 使用GET方法和POST方法发送请求(通过Apache接口实现)
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法