Я хочу вызвать метод контроллера, который возвращает строковое значение из представления, например, предположим, что у меня есть метод контроллера public string Username(string email)
. Я хочу вызвать этот метод в поле зрения, чтобы я мог назначить возвращаемое значение, т.е. Имя пользователя для моей метки.
Поэтому у меня есть два вопроса:
если вы хотите отобразить его:
@{Html.RenderAction("Username", "ControllerName" , new {email="your email"});}
Если вы хотите называть его через ajax, используйте '@Url.Action("Username", "ControllerName", new {email="your email"})'
качестве URL-адреса в вашем ajax-запросе
Используйте приведенный ниже код, также добавьте атрибут [HttpPost] выше метода действия контроллера
$.ajax({
// method: 'POST', <-- remove this
type: 'POST', // <-- add this
url: '@Url.Action("ActionName","ControllerName")',
dataType: 'json',
data: { id: 'Parameter' },
success: function (data, textStatus, jqXHR) {
//the data here is returned from your controller action method
console.log("success");
},
error: function () {
alert('error');
}
});
Взгляните на AJAX. Если вы используете JQuery, эту задачу можно выполнить с помощью функции ajax. В вашем случае javascript будет выглядеть примерно так:
$.ajax({
url: '@Url.Action("Username")',
data: { email: "[email protected]" },
success: function (result) {
$('#YourLabel').val(result);
}
});
Сторона просмотра
@model String
<label>Model</label>
Сторона контроллера
public ActionResult ReturnString()
{
var user=userName//Get user name
return View(user)
}