l 命名以Controller結(jié)尾
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了井研免費建站歡迎大家使用!
public class TestController : Controller{
public IActionResult SayHelo(){
return Content(“Hello”);
}
}
l 使用ControllerAttribute標注
[Controller]
public class Test : Controller{
public IActionResult SayHelo(){
return Content(“Hello”);
}
}
l 使用NonController標注該類不是控制器
[NonController]
public class TestController : Controller{
public IActionResult SayHelo(){
return Content(“Hello”);
}
}
域名/{Controller}/{Action}
域名/{控制器類}/{方法}
數(shù)據(jù)形式
l QueryString
www.jqstu.com/test/sayhello?key1=value1&key2=value2
l 表單Form
l 客戶端Cookie
l 服務(wù)端會話Session
l 頭數(shù)據(jù)Header
提供獲取請求數(shù)據(jù)的屬性(Cookie Headers Query Forms)
string value1=Request.Query[‘key1’];
string name=Request.Form[‘name];
string cookiesname=Request.Cookies[‘name];
string cookiesname=Request.Cookies[‘name];
return Content(“Hello”+value1);
提供Session熟悉獲取Session對象
l Session.set設(shè)置
l Session.Remove移除
l Session.TryGetValue獲取數(shù)據(jù)
HttpContext.Session.SetString(“name”,”jqstu”);
HttpContext.Session.Remove(“name”);
string name = HttpContext.Session.GetString(“name”);
HttpContext.Session.SetInt32(“age”,32);
int ? age = HttpContext.Session.GetInt32(“age”);//?代表可空類型數(shù)據(jù)
把用戶請求的數(shù)據(jù)綁定在控制方法的參數(shù)上
綁定規(guī)則是請求數(shù)據(jù)名稱和參數(shù)名稱一致
l 如果查詢字符串key名稱跟參數(shù)一致
l Form表單名稱與參數(shù)一致
l 查詢字符串或表單key的名稱和類屬性名稱保持一致
支持簡單類型
public IActionResult SayHelo(string name){
return Content(“Hello”+name);
}
自定義類
public IActionResult SayHelo(TestModel model){
return Content(“Hello”+model.name);
}
public class TestModel(){
Public string Name{get; set;}
}
常見的特性
假如key同時存在不同的數(shù)據(jù)源,這時候就要運用特性的方式去綁定數(shù)據(jù)
特性 | 數(shù)據(jù)源 |
FormHeaderAttribute | Headers |
FormRouteAttribute | 路由數(shù)據(jù) |
FormBodyAttribute | 請求體 |
FormFromAttribute | 表單數(shù)據(jù) |
FormQueryAttribute | 查詢字符串 |
FormServicesAttribute | 服務(wù)注冊 |
function postheader(){
$.ajax({
url:”/test/ajaxsay?r=”+Math.random(),
beforeSend:function(xhr){
Xhr.setRequestHeader(“name”,”jqstu”);
},
type:”get”,
Success:function(data){
alert(data)
}
});
}
public IActionResult postsay([FormQuery] string name){
return Content(“Hello”+name);
}
public IActionResult ajaxsay([FormHeader] string name){
return Content(“Hello”+name);
}
IActionResult動態(tài)結(jié)果接口
具體實現(xiàn)
l JsonResult:返回JSON結(jié)果數(shù)據(jù)
l RedirectResult:跳轉(zhuǎn)新網(wǎng)址
l FileResult:返回文件
l ViewResult:返回視圖頁面
l ContentResult:文本內(nèi)容
返回結(jié)果形式的統(tǒng)稱
類型 | 實例化對象 | 封裝方法 |
JSON結(jié)果 | JsonResult | Json(object) |
跳轉(zhuǎn) | RedirectResult | Redirect(url) |
文件 | FileResult | File() |
視圖 | ViewResult | View |
文本 | ContentResult | Content() |
JSON數(shù)據(jù)輸出
public IActionResult ReturnJson(){
//JsonResult res = new JsonRult( new {name =”jqstu”});
//return res ;
return Json( new {name =”jqstu”} );
}
View視圖輸出
public IActionResult ShowView(){
return view();//默認生成/views/Test/showview.cshtml
return view(“~/Views/Test/Index.cshtml”);
}
異步動作結(jié)果,在特定環(huán)境可以提供程序的性能
特定的網(wǎng)絡(luò)請求,文件,數(shù)據(jù)庫等等涉及到IO操作使用一下定義方法
public Task
}
ViewData | ViewBag |
鍵值對 | 動態(tài)類型 |
索引器 | ViewData的封裝 |
支持任意類型 | 動態(tài)屬性 |
l 以_ViewStart.cshtml命名,固定命名,不能更換
l 一般放在視圖所在目錄的根目錄下
l 自動執(zhí)行,無需手動調(diào)用
l 不要在ViewStart中做大量的業(yè)務(wù)操作
l 以_ViewImports.cshtml命名,固定命名,不能更換
l 只做引入操作(全局命名空間引入)
l 一般放在視圖所在目錄的根目錄下
l 自動執(zhí)行,無需手動調(diào)用
l 不要在ViewStart中做大量的業(yè)務(wù)操作
引入方式
視圖中是可以使用@using關(guān)鍵字引入所需命名空間
通過ViewImport做全局性的命名空間引入,減少頁面代碼量