asp.net mvc view 使用小结2
1.actionLink:
一般使用:
跨controller调用:
controller:
2.form 标签:
view:
controller:
view的代码可读性不够强,也可写成:
3.hidden的使用:
view代码:
生成HTML:
4.dropdown和listbox:
view直接使用viewdata数据,自动完成绑定
5.Password:
view:
html:
view:
html:
6.radio button
view:
html:
7.partial view
view:
和
8.textarea:
view:
9.validation
model(EF自动生成):
create action:
view:
一般使用:
<%: Html.ActionLink("Edit", "Edit", new { id = Model.StuId })%>
跨controller调用:
<%: Html.ActionLink("invokeTest","method1","Test",new {id1="11",id2="22",id3="33"}) %>
controller:
[AsyncTimeout(6000)]
public void method1Async(string id1, string id2, string id3, string id4 = "4")
{
Thread.Sleep(3000);
}
public void method1Completed(string id1,string id2,string id3,string id4 = "4") {
Response.Write("id1: " + id1 + " id2 : " + id2 + " id3 :" + id3 + "id4: " + id4);
}
2.form 标签:
view:
<% using (Html.BeginForm())
{ %>
<input type="text" />
<input type="submit" value="ok" />
<% } %>
controller:
[HttpPost]
public ActionResult Details(string a) {
string aa = a;
return View();
}
view的代码可读性不够强,也可写成:
<% Html.BeginForm();%>
<input type="text" />
<input type="submit" value="ok" />
<% Html.EndForm(); %>
3.hidden的使用:
view代码:
<%: Html.HiddenFor(m => m.Name) %>
生成HTML:
<input id="Name" name="Name" type="hidden" value="321455555555" />
4.dropdown和listbox:
controller使用linq直接赋值:
var q = svm.StudentList;
var ids = (from q1 in q select new SelectListItem() { Text = q1.name });
ViewData["stuname"] = ids;
view直接使用viewdata数据,自动完成绑定
<div>
<%:Html.DropDownList("stuname") %>
</div>
<p>
<%: Html.ListBox("stuname") %>
</p>
5.Password:
view:
<%: Html.Password("pwd") %>
html:
<input id="pwd" name="pwd" type="password" />
view:
<%: Html.Password("pwd",Model.Name) %>
html:
<input id="pwd" name="pwd" type="password" value="ewq" />
6.radio button
view:
<%: Html.RadioButton("radio", "red", false) %>
<%: Html.RadioButton("radio", "yellow", true) %>
html:
<input id="radio" name="radio" type="radio" value="red" />
<input checked="checked" id="radio" name="radio" type="radio" value="yellow" />
7.partial view
view:
<% Html.RenderPartial("ajaxTest"); %>
和
<% Html.RenderPartial("ajaxTest",Model); %>
8.textarea:
view:
<%: Html.TextArea("ta","hello , world",10,8,new {@class="aaa"}) %>
html:
<textarea class="aaa" cols="8" id="ta" name="ta" rows="10"> hello , world</textarea>
9.validation
常用验证规则:
Required:必须输入,不能为空
StringLength:字符串的长度不能大于设置的长度
Range:数字的可输入范围
RegularExpression:正则表达式匹配
model(EF自动生成):
Required 和 StringLength 为限制条件
[Required(ErrorMessage="stu no is not null")]
[StringLength(10,ErrorMessage="length is invalid")]
public global::System.String stuNo
{
get
{
return _stuNo;
}
set
{
if (_stuNo != value)
{
OnstuNoChanging(value);
ReportPropertyChanging("stuNo");
_stuNo = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged("stuNo");
OnstuNoChanged();
}
}
}
create action:
if (ModelState.IsValid)
{
svm.AddStudent(s);
return Index();
}
else
{
return View("Create");
}
view:
<%: Html.ValidationSummary("something is wrong") %>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.stuNo) %>
<%: Html.ValidationMessageFor(model => model.stuNo) %>
</div>