【发布时间】:2016-04-18 12:29:12
【问题描述】:
我正在构建一个 Umbraco7 包,但我有点停滞不前。我对 Angular 和 C# 的经验很少,我想做的是添加一个导入选项,后台用户可以在其中导入 xls 文件并使用 xls 内容填充现有数据库表。
这是我目前所拥有的,我不知道如何让它将文件保存在第一个位置,更不用说从 xls 文件中提取值了。
HTML
// This is the view (table.html)
// Excluding the export blank xls file table.
<div class="import-div">
<input type="file" name="MyFile" />
<input type="submit" class="btn btn-danger" ng-click="ButtonClickHandler()" />
</div>
Angular.Js 控制器文件
// Here is my js controller file:
angular.module("umbraco")
.controller("ImportCtrl", function ($scope, keyResource) {
$scope.ButtonClickHandler = function () {
console.log("I was clicked!");
};
});
C# 控制器
//This is the C# controller.
using AngularUmbracoPackage.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using System.Web.Security;
using umbraco.cms.businesslogic.member;
using Umbraco.Web.Mvc;
using Umbraco.Core.Persistence;
using System.Configuration;
using Umbraco.Core.Logging;
using System.Data;
using System.Text;
using System.IO;
using System.Web;
using System.Net.Http;
namespace AngularUmbracoPackage.App_Code
{
[HttpPost]
public class ImportNewDictionaryController
{
[HttpPost]
public ActionResult importFile()
{
public string fileName;
public string DictionaryKey;
var db = UmbracoContext.Application.DatabaseContext.Database;
var insert = new Sql("INSERT INTO cmsDictionary VALUES('" + DictionaryKey + "'");
}
}
}
谁能给我任何可以帮助或指导我完成此任务的链接?
【问题讨论】:
-
您遇到的问题是您的 angularjs 控制器(前端 - 意味着它由浏览器执行)和您的 c# 类(在服务器端执行)之间缺乏通信。这可以通过向服务器发送和获取请求来实现 - docs.angularjs.org/api/ng/service/$http
-
确保在服务器端指示您的 c# 控制器以 json 格式返回数据,以便 angular 能够解释它
-
我不明白你的意思,我正在尝试使用 Angular 将文件保存到服务器。和 C# 格式化保存文件中的数据,以便将其放置在数据库表中
-
是的,你没看错。
-
对,我只是不确定如何在 C# 中做到这一点,通过 Angular 保存文件可能没问题。然后问题是转换数据,使其对输入数据库有效。