По умолчанию в MVC все немаркированные методы считаются GET
методами.Если вы отправляете данные обратно на сервер в форме POST
, вам необходимо объявить метод как таковой, добавив атрибут метода HttpPost
.
[HttpPost]
public IActionResult Login(LoginViewModel model)
{
...
}
Обратите внимание на атрибут HttpPost
вышеметод?
Вам также нужно будет придерживаться подписи метода (передавая допустимый тип модели) из формы.Вы можете попытаться построить свое представление так:
***View/ Index.cshtml***
@using PTCConnector.Models.DB
@model PTCConnector.ViewModels.LoginViewModel
@{
ViewData["Title"] = SharedLocalizer["Users"];
var user = ViewData["User"] as List<User>;
List<PTCConnector.Areas.Subscription.Models.SubscriptionModel> filePaths = ViewData["FilePaths"] as List<PTCConnector.Areas.Subscription.Models.SubscriptionModel>;
}
@using(Html.BeginForm("Login", "WhAuth", FormMethod.Post))
{
<label>
Username:
@Html.TextBoxFor(m => m.Username, null, new {})
</label>
<br />
<label>
Password:
@Html.TextBoxFor(m => m.Password, null, new {})
</label>
<br />
<label>
Enter New Password:
@Html.TextBoxFor(m => m.NewPassword, null, new {})
</label>
<br />
<button class="btn btn-default" type="submit">Sign up as Admin</button>
}
Вы заметите, что я добавил к нему модель представления, содержащую значения Username
, Password
и NewPassword
для вас.Вам нужно создать класс в PTCConnector
с именем LoginViewModel.cs
в новой папке ViewModels
с этими 3 переменными в качестве свойств класса (строк).Таким образом, у вас есть отдельная модель для внешнего интерфейса, и она не содержит никакой внутренней информации.Пример ниже:
~/PTCConnector/ViewModels/LoginViewModel.cs
using System;
namespace PTCConnector.ViewModels
{
public class LoginViewModel
{
public string Username { get; set; }
public string Password { get; set; }
public string NewPassword { get; set; }
}
}
При такой настройке, когда вы вводите информацию в форму и нажимаете кнопку Отправить, она должна попасть в бэкэнд и иметь возможность обрабатывать модель.Если вы хотите сделать это полностью независимым, вы можете начать использовать Ajax для создания вызовов и выполнения запросов через Json.Но я чувствую, что сейчас это совершенно новая игра с мячом