c# - 使用 Angular.js 路由将 UI 视图与 ASP.net Razor 分离的问题
问题描述
使用指令解决。
我正在尝试将 UI 与当前使用 Razor 页面 (.cshtml) 来呈现视图的 ASP.net Web 应用程序分开。我希望客户端视图完全由 Angular.js 使用 ng-view 指令处理。我在 StudentForm.html 中创建了一个视图,这是我想在我的 Index.html 文件中注入的表单,以便以后可以重新使用它。但是,这没有按预期工作,我收到以下错误:
HTTP404: NOT FOUND - 服务器没有找到与请求的 URI(统一资源标识符)匹配的任何内容。(XHR)GET - http://localhost:61424/Views/StudentForm.html
- 我尝试根据我的项目结构将文件移动到不同的文件夹。
- 我已确保在尝试注入视图的 .html 文件底部包含脚本引用。
索引.cshtml:
<div ng-app="myApp">
<div ng-controller="StudentCtrl">
<!--The view for the form goes here-->
<div ng-view></div>
</div>
</div>
<script src="~/Scripts/angular.min.js"></script>
<script src="~/Scripts/angular-route.min.js"></script>
<script src="~/ScriptsNg/Module/sepView.js"></script>
<script src="~/ScriptsNg/Controller/StudentCtrl.js"></script>
<script src="~/ScriptsNg/Service/CrudService.js"></script>
我的应用模块:(sepView.js):
var sepView = angular.module('myApp', ['ngRoute']);
sepView.config(function
($routeProvider) {
$routeProvider
.when('/', {
controller:
'StudentCtrl',
templateUrl:
'Views/StudentForm.html'
})
.otherwise({
redirectTo: '/'
});
});
StudentForm.html 只包含表单,所以我不会包含它。
StudentCtrl.js:
sepView.controller('StudentCtrl', ['$scope', 'CrudService',
function ($scope, CrudService) {
// Base Url
var baseUrl = '/api/StudentAPI/';
$scope.btnText = "Save";
$scope.studentID = 0;
$scope.SaveUpdate = function () {
var student = {
FirstName: $scope.firstName,
LastName: $scope.lasttName,
Email: $scope.email,
Address: $scope.address,
StudentID: $scope.studentID
}
if ($scope.btnText == "Save") {
var apiRoute = baseUrl + 'SaveStudent/';
var saveStudent = CrudService.post(apiRoute, student);
//Callback to check what kind of response we received:
saveStudent.then(function (response) {
if (response.data != "") {
alert("Data Saved Successfully");
$scope.GetStudents();
$scope.Clear();
} else {
alert("Some error");
}
}, function (error) {
console.log("Error: " + error);
});
}
CrudService.js:
sepView.service('CrudService', function ($http) {
var urlGet = '';
this.post = function (apiRoute, Model) {
var request = $http({
method: "post",
url: apiRoute,
data: Model
});
return request;
}
返回视图的 StudentController:
namespace CRUDOperations.Controllers
{
public class StudentController : Controller
{
// GET: Student
public ActionResult Index()
{
return View();
}
public ActionResult viewAllStudents() {
return View();
}
}
}
这是项目文件夹结构。我在掌握从使用 ASP.net 路由和视图到使用 Angular.js 进行路由和视图的飞跃时遇到了很多麻烦。如果有人可以向我指出一些关于此的文章,那可能会有所帮助!
解决方案
推荐阅读
- intellij-idea - IntelliJ 中的 TestNG 错误“强烈建议在文件顶部添加”
- c++ - 使用递归对数组的正元素求和
- shimmercat - Pixellena 图像 API 的缩放命令 beh
- python-3.x - 我写了一个代码段,它应该像冒泡排序算法一样工作,但它不喜欢“1”字符串
- amazon-web-services - AWS:无法删除 Elasticsearch 服务
- typescript - 根据另一个兄弟姐妹的类型推断兄弟属性的类型
- excel-formula - Excel公式查找文本并在其后提取特定长度的字符
- ios - SwiftUI - 阻止用户在 TextEditor 中添加新行 (\n)
- r - `data.table` 可以安全地使用`sparkR`、`sparklyr` 和 `rsparkling` 来代替 `dplyr` 吗?
- batch-file - 我可以在过滤批处理文件(cmd)中的某些格式时显示目录中的文件吗