C# 单页MVC?
我不太熟悉MVC,尽管过去几天我一直在阅读大量的MVC资料。现在,我需要制作一个只使用一个网页的web项目。该网页将显示来自现有数据库的数据,以及添加和编辑条目。我被告知要使用MVC。虽然在我的研究中,我觉得MVC更适合大型项目。如何在我的单页项目中使用MVC?我在想dbcontext->repository->controllers->models->view之类的东西。这是正确的,还是有更有效的方法 如果我不使用MVC,我可以使用什么C# 单页MVC?,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,我不太熟悉MVC,尽管过去几天我一直在阅读大量的MVC资料。现在,我需要制作一个只使用一个网页的web项目。该网页将显示来自现有数据库的数据,以及添加和编辑条目。我被告知要使用MVC。虽然在我的研究中,我觉得MVC更适合大型项目。如何在我的单页项目中使用MVC?我在想dbcontext->repository->controllers->models->view之类的东西。这是正确的,还是有更有效的方法 如果我不使用MVC,我可以使用什么 编辑:在一个只有一个页面的项目上使用MVC的最佳方法是什
编辑:在一个只有一个页面的项目上使用MVC的最佳方法是什么?如果您只需要一个页面应用程序,您可以使用ASP.NET Core的SPA模板: 它们包括MVC ASP.NET+前端MVVM框架,如Angular、Aurelia、Knockout或React 其他选项:对ASP.NET Core:使用Razor页面: Razor Pages是ASP.NET核心MVC的一项新功能,它使编码 以页面为中心的场景更简单、更高效
如果您只需要一个页面应用程序,则可以使用ASP.NET核心的SPA模板: 它们包括MVC ASP.NET+前端MVVM框架,如Angular、Aurelia、Knockout或React 其他选项:对ASP.NET Core:使用Razor页面: Razor Pages是ASP.NET核心MVC的一项新功能,它使编码 以页面为中心的场景更简单、更高效
是的,你可以。这类任务有很多方法,我将列举其中两种 MVC方法 MVC方法如下所示: 您将拥有一个控制器,其中包含所有输入逻辑和操作结果 例如:
public class HomeController : Controller
{
public ActionResult index()
{
return view();
}
public ActionResult ContactUs()
{
return view();
}
public ActionResult About()
{
return view();
}
var myApp = angular.module('myApp', ["ngRoute"])
.config(function ($routeProvider) {
var baseUrl = $("base").first().attr("href");
$routeProvider.when('/',
{
templateUrl: baseUrl + 'Html/Home.html',
controller: 'myHomeCointroller'
});
$routeProvider.when('/About',
{
templateUrl: baseUrl + 'Html/About.html',
controller: 'myAboutController'
});
$location.path('/About');
}
然后为每个操作创建一个布局页面和一个视图(或部分视图),然后在同一个控制器中进行路由,这样就创建了一个仅更改布局内内容的网页
优点:
public class HomeController : Controller
{
public ActionResult index()
{
return view();
}
public ActionResult ContactUs()
{
return view();
}
public ActionResult About()
{
return view();
}
var myApp = angular.module('myApp', ["ngRoute"])
.config(function ($routeProvider) {
var baseUrl = $("base").first().attr("href");
$routeProvider.when('/',
{
templateUrl: baseUrl + 'Html/Home.html',
controller: 'myHomeCointroller'
});
$routeProvider.when('/About',
{
templateUrl: baseUrl + 'Html/About.html',
controller: 'myAboutController'
});
$location.path('/About');
这样,您可以使用角度“位置”依赖项进行导航,例如:
public class HomeController : Controller
{
public ActionResult index()
{
return view();
}
public ActionResult ContactUs()
{
return view();
}
public ActionResult About()
{
return view();
}
var myApp = angular.module('myApp', ["ngRoute"])
.config(function ($routeProvider) {
var baseUrl = $("base").first().attr("href");
$routeProvider.when('/',
{
templateUrl: baseUrl + 'Html/Home.html',
controller: 'myHomeCointroller'
});
$routeProvider.when('/About',
{
templateUrl: baseUrl + 'Html/About.html',
controller: 'myAboutController'
});
$location.path('/About');
在这个布局页面上创建一个布局页面和一个非常容易导航的系统。
布局页面将仅根据每个html内容更改其内容
专业人士
您创建了一个非常灵活且易于维护的应用程序,它不会消耗大量的输入逻辑(控制器代码),并且是角度控制器驱动的,因此也可以创建一种非常简单的方法来在将来修复代码
缺点
您不能在html页面中使用razor,因此必须创建大量对服务器的ajax调用,这可能需要您编写一个web api或WCF来连接服务器以获取/发布数据
您的逻辑将分布在多个角度控制器中,而不是一个位置(例如,家庭控制器中的所有逻辑),在处理需要注意的小问题时,这可能需要时间
您可以选择采用哪种MVC方法
对于其他框架,有很多方法可以做到这一点,但同样,它永远不会结束
按照他们告诉你的,专注于你的任务,学习我告诉你的每种方法的原理,祝你好运
有关视图的阅读材料:
有关angular ui路由器的阅读材料:
是的,你可以。这类任务有很多方法,我将列举其中两种 MVC方法 MVC方法如下所示: 您将拥有一个控制器,其中包含所有输入逻辑和操作结果 例如:
public class HomeController : Controller
{
public ActionResult index()
{
return view();
}
public ActionResult ContactUs()
{
return view();
}
public ActionResult About()
{
return view();
}
var myApp = angular.module('myApp', ["ngRoute"])
.config(function ($routeProvider) {
var baseUrl = $("base").first().attr("href");
$routeProvider.when('/',
{
templateUrl: baseUrl + 'Html/Home.html',
controller: 'myHomeCointroller'
});
$routeProvider.when('/About',
{
templateUrl: baseUrl + 'Html/About.html',
controller: 'myAboutController'
});
$location.path('/About');
}
然后为每个操作创建一个布局页面和一个视图(或部分视图),然后在同一个控制器中进行路由,这样就创建了一个仅更改布局内内容的网页
优点:
public class HomeController : Controller
{
public ActionResult index()
{
return view();
}
public ActionResult ContactUs()
{
return view();
}
public ActionResult About()
{
return view();
}
var myApp = angular.module('myApp', ["ngRoute"])
.config(function ($routeProvider) {
var baseUrl = $("base").first().attr("href");
$routeProvider.when('/',
{
templateUrl: baseUrl + 'Html/Home.html',
controller: 'myHomeCointroller'
});
$routeProvider.when('/About',
{
templateUrl: baseUrl + 'Html/About.html',
controller: 'myAboutController'
});
$location.path('/About');
这个w