Чтобы вернуть представление, необходимо вернуть представление.Что-то вроде:
return View();
Или, если нужно включить модель:
return View(someModel);
Но ваше действие контроллера просто возвращает данные JSON:
return Json(player, JsonRequestBehavior.AllowGet);
Вы не можете вернуть оба .Похоже, у вас есть два варианта:
- Возвращать вид с объектом
player
в качестве модели.В этом случае представление будет визуализировать данные из модели напрямую, и не будет необходимости в JSON или какой-либо связи с JavaScript.(Ну, может быть , в зависимости от вашего взгляда и того, что вам нужно делать. Но это не будет на уровне контроллера.) - Выполните два действия контроллера.Один, который возвращает представление, другой, который возвращает данные JSON.Код JavaScript на стороне клиента отправляет AJAX-запрос ко второму действию для извлечения данных JSON.
Какой из них вы выбираете, зависит от вас.Но в конечном итоге вы не можете вернуть и представление и необработанный JSON из одного действия.
Чтобы привести пример второго варианта, у вас будет два действия:
public ViewResult Player(int playerID)
{
return View(playerID);
}
public JsonResult GetPlayerNameByID(int playerID)
{
var player = GetPlayerByID(playerID);
return Json(player, JsonRequestBehavior.AllowGet);
}
Первый метод вернет ваше представление Player
(при условии, что оно у вас есть), с целым числомкак модель.Таким образом, представление будет начинаться с объявления для этого типа модели:
@model int
Это означает, что внутри кода представления вы сможете получить доступ к playerID
в переменной Model
.Таким образом, в JavaScript-коде представления вы можете записать это в переменную:
let playerID = @Model;
Что, если, например, значение playerID
было 123
, это вывело бы на стороне клиента как:
let playerID = 123;
Оттуда вы будете использовать AJAX для запроса @Url.Action("GetPlayerNameByID")
для получения данных JSON.То, как вы это сделаете, будет зависеть от того, какие фреймворки / библиотеки JavaScript вы используете, если таковые имеются, и в Интернете доступно множество примеров того, как использовать AJAX в различных фреймворках и в ASP.NET.