构件Form表单
1.Html.BeginForm()
该方法用于构建一个From表单的开始,他的构造方法为:
Html.BeginForm("ActionName","ControllerName",FormMethod.method)
一般构建一个表单结构如下
<% using(Html.BeginForm ("index","home",FormMethod.Post)){ %>
。。。。。。
<%} %>
他将在客户端产生一个类似<form action="/account/login" method="post"></form>标签
2.现在开始创建一个表单实例,首先在Index.aspx中构建一个表单
<% using(Html.BeginForm ("index","home",FormMethod.Post)){ %>
帐号:<%=Html .TextBox ("username") %>
<br/>
密码:<%=Html .Password ("password") %>
<br />
<input type="submit" value="登录" />
<%} %>
3.在对应得控制器HomeController.cs中写入下面代码,传递出一个ViewData[]字典:
public ActionResult Index()
{
string struser = Request.Form["username"];
string strpass = Request.Form["password"];
ViewData["w"] = "你的账号是:" + struser + "你的密码是:" + strpass;
return View();
}
4.在Index.aspx中写接受传值
<%=ViewData ["w"] %>
ViewData做一下解释
1.ViewData[]字典:
1.简单的传值
a.首先我们在控制器HomeController.cs中创建一个ViewData[]字典:
public ActionResult Index()
{
ViewData["strValue"] = "这是一个传递的值";//这里是我们传递的ViewData[]
return View();
}
b.然后我们就可以在相对应得Index.aspx中写上:
<%: ViewData["strValue"] %>
控制器向视图中传值ViewData详解
1.将一个字符串传值到视图中
在action中我们将字符串保存在ViewData(或ViewBag [asp.net 3或以上才可用])中代码如下:
public ActionResult Index()
{
ViewData["str1"]= "这是一个字符串";
//也可以使用ViewBag来传递值
ViewBag.str2="这是另外一个字符串";
return View();
}
在视图中我们可以用下面代码将字符串显示出来
<h1>@ViewData["str1"]</h1>
<h1>@ViewBag.str2</h1>
2.将一个字符串集合传递到视图中
public ActionResult Index()
{
List<string> str1= new List<string>();
str1.Add("1111");
str1.Add("2222");
str1.Add("3333");
ViewData["str"] = str1;
return View();
}
在视图中我们通过下面语句将str1的值显示出来
@foreach (var a in ViewData["str"] as List<string>)
{
@a
}
3.将一个datatable的值传递到视图中
public ActionResult Index()
{
DataTable newtable = new DataTable("d");
newtable.Columns.Add("商品编号", typeof(string));
newtable.Columns.Add("客户编号", typeof(string));
DataRow NewRow = newtable.NewRow();
NewRow["商品编号"] = "132323213434";
NewRow["客户编号"] = "344223443244";
newtable.Rows.Add(NewRow);
DataRow SNewRow = newtable.NewRow();
SNewRow["商品编号"] = "343432445456";
SNewRow["客户编号"] = "454523432453";
newtable.Rows.Add(SNewRow);
ViewData["dt"]= newtable;
return View();
}
在视图中我们通过下面语句将dt的值显示出来
注意:在顶部要先加上:@using System.Data;
<ul>
@foreach(DataRow dr in (ViewData["dt"] as DataTable).Rows)
{
<li>
@dr["商品编号"],@dr["客户编号"],
</li>
}
</ul>