#javascript #angularjs #asp.net-mvc #asp.net-core #ng-bind-html
#javascript #angularjs #asp.net-mvc #asp.net-ядро #ng-bind-html
Вопрос:
У меня есть такой тег : <a data-ng-click="showform(@item.CategoryId)">
У меня есть переменная «catid» в razor… @{int catid; }
Я хочу сохранить значение в ‘catid’
это мой js-код :
app.controller('Результат', функция ($ scope) { $ scope.CatId = 0; $scope.showform = функция (идентификатор) { $ scope.CatId = идентификатор; } });
Комментарии:
1. Вы не можете установить переменную на стороне сервера, используя js-код на стороне клиента. Можете ли вы уточнить больше о фактическом сценарии / требовании?
2. я хочу использовать CatId для кода linq и показывать имя категории при просмотре
3. Почему бы не сделать запрос со стороны клиента angularjs к серверному действию с
CatId
параметром as и запросить данные с помощью linq, а затем обновить название категории в пользовательском интерфейсе на основе полученных данных на клиенте angularjs?
Ответ №1:
я хочу использовать CatId для кода linq и показывать имя категории при просмотре
Можете ли вы дать мне пример кода?
Ниже приведен рабочий пример, вы можете обратиться к нему.
<div ng-app="myApp" ng-controller="Result">
@foreach (var item in Model)
{
<a data-ng-click="showform(@item.CategoryId)">CategoryId is @item.CategoryId</a>
<br />
}
<h2>Name of selected Category is {{CatName}}</h2>
</div>
Сделайте запрос (ы) с помощью AngularJS $ http service
<script>
var app = angular.module('myApp', []);
app.controller('Result', function ($scope, $http) {
$scope.CatId = 0;
$scope.CatName = "";
$scope.showform = function (id) {
$scope.CatId = id;
$http.get("/GetCategoryNameById?catid=" id)
.then(function (response) {
$scope.CatName = response.data;
//your code logic here based on your actual requirement
});
}
});
</script>
Мой GetCategoryNameById
метод действий для целей тестирования
[HttpGet("GetCategoryNameById")]
public IActionResult GetCategoryNameById(int catid)
{
//your code logic here
//query data based on received catid
var category = _dbcontext.Categories.Where(c => c.CategoryId == catid).FirstOrDefault();
return Ok($"{category.CategoryName}");
}
Результат теста
Комментарии:
1. спасибо, братан, если я хочу отправить два разных значения взамен, как это можно сделать?
return Ok($"{category}",$"{field}");
2.
field
является ли список данных3. Вы можете определить класс viewmodel с ожидаемыми свойствами для категории, поля и т. Д., А Затем вернуть его в клиентское приложение.
4. хорошо, я не знаю, как получить модель в этом коде? ` $http.get(«/GetCategoryNameById?catid=» id) .затем (функция (ответ) { $scope. Поля = ответ.данные; }); `
Ответ №2:
Может быть, вы можете использовать этот способ.
<input type="hidden" name="catid" id="catid" value="{{Catid}}" />
При отправке формы это значение передается asp.net ядро.