欢迎光临

木子屋

标题: ASP.NET MVC3同一View多个表单测试

作者: dnawo

日期: 2012-08-15 11:42 AM

分类: Web编程

内容: 测试1：同一View单个表单测试
View：
复制内容到剪贴板 程序代码<h2>@ViewBag.Message</h2>
<p>
@using (Html.BeginForm()) {
<input type="text" name="f1" />
<input type="submit" value="submit" />
}
</p>
Action：
复制内容到剪贴板 程序代码[HttpPost]
public ActionResult Index(string f1)
{
ViewBag.Message = string.Format("f1={0}", f1);
return View();
}
结果正常：
测试2：View表单和Action参数名称不一致测试
Action：
复制内容到剪贴板 程序代码[HttpPost]
public ActionResult Index(string f2)
{
ViewBag.Message = string.Format("f1={0}", f2);
return View();
}
运行结果：
可见，View表单名称必须和Action参数名称对应，Action中才能正确取值。
测试3：同一View两个表单测试
View：
复制内容到剪贴板 程序代码<h2>@ViewBag.Message</h2>
<p>
@using (Html.BeginForm()) {
<input type="text" name="f1" />
<input type="submit" value="submit" />
}
@using (Html.BeginForm())
{
<input type="text" name="f2" />
<input type="text" name="f3" />
<input type="submit" value="submit" />
}
</p>
Action：
复制内容到剪贴板 程序代码[HttpPost]
public ActionResult Index(string f1)
{
ViewBag.Message = string.Format("f1={0}", f1);
return View();
}
[HttpPost]
public ActionResult Index(string f2, string f3)
{
ViewBag.Message = string.Format("f2={0},f3={1}", f2, f3);
return View();
}
项目生成通过，但在submit时出错：
既然Action参数名和表单一一对应，为什么HttpPost时区分不出来呢？Action做如下修改后运行正常：
复制内容到剪贴板 程序代码[HttpPost]
public ActionResult Index(string f1, string f2, int f3)
{
ViewBag.Message = string.Format("f1={0},f2={1},f3={2}", f1, f2, f3);
return View();
}

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.833 ms

返回

标题: ASP.NET MVC3同一View多个表单测试

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.833 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.864 ms

返回