На моей странице у меня есть простой клиент чата, который я написал.Как отправить файлы в C# MVC-модель с помощью загрузчика угловых файлов?
В сообщениях есть темы, вторые могут содержать файлы (структура выглядит так: Список тем. -> У каждой темы есть список сообщений. -> У каждого сообщения есть список документов.). Я просто не знаю, как добавить эти файлы в сообщение, так как я не специалист AngularJS (пока!).
Я пользуюсь услугами Azure.
Код:
HTML:
<div class="row">
<div class="col-md-12 text-left">
<button class="btn btn-default margins" ng-click="backToTopicViewSwitch()">Wróć</button>
<button class="btn btn-primary margins" ng-click="addNewMessage()">Nowa wiadomość</button>
</div>
<form novalidate="" name="form">
<div class="form-group">
<textarea class="form-control" placeholder="Treść nowej wiadomości..." type="text" rows="4" name="MsgText" ng-model="dataForNewMessage.MsgText" required=""></textarea>
<div>
<label>Dodawanie załączników do wiadomości:</label>
<input class="form-control" type="file" nv-file-select uploader="uploaderMsg" multiple/>
</div>
</div>
</form>
</div>
addNewMessage():
$scope.addNewMessage = function() {
$http({ method: 'PUT', url: '/OfferClientData/AddMessageToTopic', data: { response: $scope.data, topicId: $scope.topicMsgsToShow, messageText: $scope.dataForNewMessage.MsgText } }).then(function (d) {
$scope.data = d.data;
toaster.pop('success', "Dodawanie wiadomości", "Pomyślnie dodano nową wiadomość.");
}, function (e) {
toaster.pop('error', "Dodawanie wiadomości", "Nastąpił błąd podczas dodawania nowej wiadomości.");
});
};
AddMessageToTopic():
[HttpPut]
public JsonResult AddMessageToTopic(OfferClientReponse response, int topicId, string messageText)
{
var newMessage = new InnerCommunicationMessage();
var targetTopic = response.InnerCommunicationTopics[topicId];
newMessage.id = targetTopic.Messages.Count;
newMessage.Message = messageText;
newMessage.WhenCreated = targetTopic.WhenLastChange = DateTime.Now;
UserModel currentUser = (UserModel)Session["user"];
newMessage.WhoCreated = currentUser.FullName;
// I know this part is wrong.
var filesCount = Request.Files.Count;
if (filesCount > 0)
{
for (int i = 0; i < filesCount; ++i)
{
var file = Request.Files[i];
if (file != null && file.ContentLength > 0)
{
var doc = new MessageDocument();
doc.DocumentName = Path.GetFileName(file.FileName);
doc.DocumentExtName = Path.GetExtension(file.FileName);
doc.FileId = String.Format("{0}{1}{2}", doc.DocumentName, OfferClientReponse.GetGUID(), doc.DocumentExtName);
newMessage.Attachments.Add(doc);
}
}
}
targetTopic.Messages.Add(newMessage);
LeaseService.GetInstance().SaveOfferInContainer(response);
return Json(response);
}
Я ищу ответ в течение нескольких часов, я не знаю, как подключить этот скрипт AngularJS к MVC. Я хочу, чтобы эти файлы загружались при нажатии кнопки Nowa wiadomość
.
У меня есть рабочий файл save to Azure.
Спасибо заранее!