asp.net razor pages是啥
-
razor页面与mvc的视图组件很相似,具有相同的语法和功能。
-
最关键区别是模型和控制器代码也包含在razor页面中,更像是mvvm,支持双向数据绑定,开发体验更简单些。
-
razor pages 感觉是web forms的演变,语法上也由以前的<%@ %>做了些修改。都忘啦,汗!
-
razor pages更适合一些只读和基本数据输入的简单页面。
mvc适用于大量动态服务器视图、单面应用程序,rest api和ajax调用的应用程序。
好多目录都很像的。
razor至简,mvc灵活要复杂。
还是直接写html好。 -
mvc
模型M表示应用数据的类,使用验证逻辑来对数据进行强制业务规则验证,存于db中。
视图V显示用户界面UI的组件,通常显示M中数据。
控制器C用来处理浏览器请求,检索模型数据,调用返回响应的视图模板。
mvc中视图仅显示信息,控制器处理用户输入和交互并对其进行响应。
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace MvcMovie.Controllers
{
public class MovieController : Controller
{
//public IActionResult Index()
//{
// return View();
//}
/// <summary>
/// 返回一个字符串
/// </summary>
/// <returns></returns>
public string Index()
{
return "movie defalut action";
}
//(string name,int times=1)
public string WelcomeDefault()
{
return "welcome action method";
}
//https://localhost:44343/Movie/Welcome?name=a×=10
public string Welcome(string name,int times=1)
{
//防止恶意输入
return HtmlEncoder.Default.Encode($"Hello:{name},{times}");
}
}
}
- https://localhost:44343/Movie/Welcome
- mvc使用URL路由逻辑 /[Cotroller]/[ActionName]/[Parameters]
忘了webapi是啥样了
Startup.cs中设置路由
app.UserEndPoints(endpoints=>
{
endpoints.MapControllerRoute(
name:"default",
pattern:"{controller=Home}/{action=Index}/{id?}"
);
});
上面写的是在地址中不输入Controller和Action的默认值
可以加些参数,试试看。
https://localhost:44343/Movie/Welcome?name=a×=10