1·下拉列表
List<SelectListItem> list=new List<SelectListItem>();
list.Add(new SelectListItem()
{
Selected = false,
Text = "zhh",
Value = "1"
});
list.Add(new SelectListItem()
{
Selected = false,
Text = "ml",
Value = "2" public class HelloController : Controller
{
//
// GET: /Hello/
public ActionResult Index()
{
return View();
}
//第1种方式:Request["键"]的方式接收参数
//[HttpGet]
public ActionResult Add()
{
string id = Request["id"];
ViewBag.Id = id;
return View();
}
//第2种方式:自动装配
//如果要实现行为的重载,要满足两个条件:1参数不同,2请求类型不同
[HttpPost]
public ActionResult Add(int id)
{
ViewBag.Id2 = id;
return View();
}
public ActionResult AddPerson()
{
return View();
}
[HttpPost]
//自动装配:可以完成自定义类型的参数的自动装配
//person=New Person();
//person.Age=request["Age"];
public ActionResult AddPerson(Person person)
{
ViewData.Model = person;
return View("AddPerson1");
}
//直接输出abc
public ActionResult Say()
{
return Content("abc");
}
public ActionResult RedirectTest()
{
return Redirect(Url.Action("Index","Home"));
}
public ActionResult JsonTest()
{
Person p=new Person()
{
Age = 10,
QQ = "123"
};
return Json(p,JsonRequestBehavior.AllowGet);
}
public ActionResult Edit(string id)
{
ViewBag.Id2 = Request["id"];
ViewBag.Id = id;
return View();
}
}
}); list.Add(new SelectListItem() { Selected = true, Text = "wcw", Value = "3" }); list.Add(new SelectListItem() { Selected = false, Text = "xy", Value = "4" }); ViewData["ddlList"] = list;
@Html.DropDownList("ddlList")
2·强类型页面
for系列的表单方法必须用页面强类型
ViewData.Model = new Person()//如果赋值就会在显示
{
Age = 10,
QQ = "123"
};
@model Day1.Models.Person//直接定义强类型就可以应用 还可以用集合形式:@model List<Day1.Models.Person>
@using (Html.BeginForm("Show1","Home1",FormMethod.Post))
{
@Html.TextBoxFor(c=>c.QQ)
}
<hr/>
@ViewData.Model.QQ
标签框:Html.Label(string expression,string text):会生成一个label标记,并显示text内容文本框:Html.TextBox(“AA”);//会自动取ViewDate中键为AA的值,同时会以“AA”作为生成的HTML控件的id与name属性的值
隐藏域:Html.Hidden(“AA”)//同TextBox
复选框:Html.Checkbox(name)//被翻译成一个checkbox与一个hidden
单选按钮:Html.RadioButton(name,value,isChecked)//被翻译成radio控件
DropDownList:在Action中向ViewData中传递一个List<SelectListItem>集合,在View中指向ViewData的参数,则会以下拉列表的形式展示数据
表单方式一:using(Html.BeginForm(actionName,controllerName)){…}
namespace Day1.Models
{
public class Person
{
public int Age { get; set; }
public string QQ { get; set; }
public void Run()
{
}
private void Say1(string name,int age,string qq)
{
Console.WriteLine(name);
}
private void Say2()
{
//Say1("lxf");
Say1("lxf",18,"123");
Say1(age:18,name:"lxf",qq:"123");
}
}
//扩展方法
public static class Class1
{
//say方法扩展到person对象中S去
public static void Say(this Person person,string age)
{
}
}
}
4·返回类型ActionResult
直接或间接继承自ActionResult的类型
ViewResult:使用View()可以指定一个页面,也可以指定传递的模型对象,如果没有指定参数则表示返回与Action同名的页面
ContentResult:使用Content(string content)返回一个原始字符串
RedirectResult:使用Redirect(string url)将结果转到其它的Action
JsonResult:使用Json(object data)将data序列化为json数据并返回,推荐加上JsonRequestBehavior.AllowGet可以处理Get请求,一般结合客户端的ajax请求进行返回
public class HelloController : Controller
{
//
// GET: /Hello/
public ActionResult Index()
{
return View();
}
//第1种方式:Request["键"]的方式接收参数
//[HttpGet]
public ActionResult Add()
{
string id = Request["id"];
ViewBag.Id = id;
return View();
}
//第2种方式:自动装配
//如果要实现行为的重载,要满足两个条件:1参数不同,2请求类型不同
[HttpPost]
public ActionResult Add(int id)
{
ViewBag.Id2 = id;
return View();
}
public ActionResult AddPerson()
{
return View();
}
[HttpPost]
//自动装配:可以完成自定义类型的参数的自动装配
//person=New Person();
//person.Age=request["Age"];
public ActionResult AddPerson(Person person)
{
ViewData.Model = person;
return View("AddPerson1");
}
//直接输出abc
public ActionResult Say()
{
return Content("abc");
}
public ActionResult RedirectTest()
{
return Redirect(Url.Action("Index","Home"));
}
public ActionResult JsonTest()//返回一个Json对象
{
Person p=new Person()
{
Age = 10,
QQ = "123"
};
return Json(p,JsonRequestBehavior.AllowGet);
}
public ActionResult Edit(string id)
{
ViewBag.Id2 = Request["id"];
ViewBag.Id = id;
return View();
}
}