ASP.NET MVC-如何在Webapi控制器返回的Razor视图中显示数据

时间:2019-02-03 06:23:39

标签: c# angularjs asp.net-mvc asp.net-web-api

我正在从表单的页面加载中调用Web API控制器并获取数据,这是从我的JS文件中获取的,并且数据已按预期正确提取。

ERROR in ./node_modules/monaco-editor/esm/vs/basic-languages/java/java.contribution.js 14:54
  Module parse failed: Unexpected token (14:54)
  You may need an appropriate loader to handle this file type.
  |     aliases: ['Java', 'java'],
  |     mimetypes: ['text/x-java-source', 'text/x-java'],
  >     loader: function () { return _monaco.Promise.wrap(import('./java.js')); }
  | });

var empDetails = // code to invoke my api controller // empDetails.$promise.then(function (empInfo) { $scope.employeeForm.EmpDetails = empInfo.EmployeeDetails; }); 正确提供了详细信息。

我需要在我的剃须刀视图引擎中显示数据,这是我遇到的问题,我是这种开发的新手。

ViewBag,强类型模型在这里不起作用,因为我从Web API控制器返回数据,而我的不是强类型剃刀视图。

$scope.employeeForm.EmpDetails具有诸如EmpID,EmpFirstName,EmpLastName,EmpLocationj之类的信息

2 个答案:

答案 0 :(得分:1)

亲爱的有两种方式

  1. 如果您一定要使用Razor,则应该在mvc控制器中使用api,从api获取数据并将其以模型返回到Razor视图,然后将使用强类型模型您的剃刀视图

  2. 如果您未绑定,则很简单,如果您正在使用javascript代码获取数据。只需使用它即可通过JavaScript代码填充视图。

  3. 如果您使用的是angular 1.x,那么这里是angularjs 1.x表单示例

<!DOCTYPE html>
<html lang="en">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="formCtrl">
  <form novalidate>
    First Name:<br>
    <input type="text" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">RESET</button>
  </form>
  <p>form = {{user}}</p>
  <p>master = {{master}}</p>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
    $scope.master = {firstName:"John", lastName:"Doe"};
    $scope.reset = function() {
        $scope.user = angular.copy($scope.master);
    };
    $scope.reset();
});
</script>
</body>
</html>

答案 1 :(得分:0)

按照您在注释中告诉开发人员的观点,可以通过html绑定此解决方案的数据,您可以尝试一下。

首先使用 @model 在.cshtml标题部分的.cshtml中初始化 model ,然后通过添加为其提供字段名称。(点)签名并将数据绑定到您的html控件