*本文根据MS官方示例流程进行一个入门练习,步骤和内容依照官方文档流程进行,基础环境为.netCore + VSCode,终端cmder ,示例项目为MvcMovie
新建学习交流QQ群:1026682857 欢迎有兴趣的朋友 前来一起学习交流。
创建项目
//创建MVC项目
dotnet new mvc -o AspNetCoreMVCDemo
//使用VSCode打开代码
code AspNetCoreMVCDemo
//添加https开发证书信任
cd AspNetCoreMVCDemo
dotnet dev-certs https --trust
MVC
- M 模型
- V 视图
- C 控制器
创建HelloWorld控制器
- 选中Controller文件夹 -> 右键单击 -> new class
- 创建HelloWorldController.cs
using Microsoft.AspNetCore.Mvc;
using System.Text.Encodings.Web;
namespace AspNetCoreMVCDemo.Controllers
{
public class HelloWorldController : Controller
{
public string Index(){
return "This is My Default Action ...";
}
public string Welcome(){
return "This is the Welcome action method...";
}
}
}
*启动程序后 可以在地址栏输入https://localhost:5001/helloworld/index 和 https://localhost:5001/helloworld/Welcome 进行验证
默认路由修改
- Startup.cs文件 -> Configure方法
修改前 系统默认
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
修改后
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=HelloWorld}/{action=Index}/{id?}");
});
*修改后 启动调试将默认跳转至 https://localhost:5001/helloworld/index
传递参数
public string Welcome(string name ,int numTimes = 1){
return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is:{numTimes}");
}
*测试访问路径 : https://localhost:5001/HelloWorld/Welcome?name=rick&numtimes=4
创建View
- 创建目录View/HelloWorld
- 添加Index.cshtml文件
- 编写html文件
@{
ViewData["Title"] = "Index";
}
<h2>Index</h2>
<p>Hello from our View Template!</p>
- 修改HelloWorldController中的Index方法
public IActionResult Index()
{
return View();
}
运行测试
*可以通过修改Views/Shared/_Layout.cshtml文件修改页面模板,修改后将为反应在所有应用该模板的页面中,须检查Views/_ViewStart.cshtml文件
- 创建Welcome.cshtml文件
@{
ViewData["Title"] = "Welcome";
}
<h2>Welcome</h2>
<ul>
@for (int i = 0; i < (int)ViewData["NumTimes"] ; i++)
{
<li>@ViewData["Message"]</li>
}
</ul>
- 修改Welcome方法
public IActionResult Welcome(string name ,int numTimes = 1){
ViewData["Message"] = $"Hello {name}";
ViewData["NumTimes"] = numTimes;
return View();
}
*参数将被直接传递到对应的方法中
- 使用基架程序生成文件
dotnet aspnet-codegenerator controller -name MoviesController -m Movie -dc MovieContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
后续添加数据库配置 在这里就不再复述了