Как сделать ваш MVC интерактивным с помощью кнопки отправки?
Привет Команда
У меня есть проблема, моя кнопка Создать, кажется, не работает хорошо. Какова логика, просто когда кнопка нажата, чтобы зарегистрировать мой MVC. Это означает, что он должен попасть в контроллер, модель и представление. То, что он делает сейчас, это только проверка пользователя, и он наследует эту логику от методов входа в систему и нуждается в некоторой помощи.
Что я уже пробовал:
<pre> Controller: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Create(CreateModel objSubmit) { ViewBag.Msg = "Details submitted successfully"; return View(objSubmit); } // This is for login, and its hits this method each time. [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(Login login) { if (ModelState.IsValid) { bool success = WebSecurity.Login(login.username, login.password, false); var UserID = GetUserID_By_UserName(login.username); var LoginType = GetRoleBy_UserID(Convert.ToString(UserID)); if (success == true) { if (string.IsNullOrEmpty(Convert.ToString(LoginType))) { ModelState.AddModelError("Error", "Rights to User are not Provide Contact to Admin"); return View(login); } else { Session["Name"] = login.username; Session["UserID"] = UserID; Session["LoginType"] = LoginType; if (Roles.IsUserInRole(login.username, "Admin")) { return RedirectToAction("AdminDashboard", "Dashboard"); } else { return RedirectToAction("UserDashboard", "Dashboard"); } } } else { ModelState.AddModelError("Error", "Please enter valid Username and Password"); return View(login); } } else { ModelState.AddModelError("Error", "Please enter Username and Password"); return View(login); } } Model: namespace eNtsaPortalWebsiteProject.Models { public class CreateModel { [Required] [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "Password")] public string password { get; set; } [Required] public string username { get; set; } } } // View for login <div class="col-md-12 col-md-offset-10 col-xs-12"> <div class="loginPage panel-info"> <span class="">class="glyphicon glyphicon-user">Username:</span> <div class="form-group text-center"> @Html.TextBoxFor(model => model.username, new { @class = "form-control text-center", autocomplete = "off" }) @Html.ValidationMessageFor(model => model.username) </div> <div class="form-group"> <span class="">class="glyphicon glyphicon-user">Password:</span> @Html.PasswordFor(model => model.password, new { @class = "form-control text-center", autocomplete = "off" }) @Html.ValidationMessageFor(model => model.password) </div> </div> <div class="form-group"> <input id="BtnLogin" type="submit" class="btn btn-success btn-pressure" name="BtnLogin" value="Login" /> <input id="BntCreate" type ="submit" class="btn btn-info btn-pressure" name="BtnCreate" value="Create" /> </div> </div> View for creating user: <div class="col-md-12 col-md-offset-10 col-xs-12"> <div class="glyphicon-registration-mark"> <div class="">class="glyphicon glyphicon-user">Username:</div> <div class="form-group text-center"> @Html.TextBoxFor(model=>model.username, new {@class ="form-control text-center", automplete="off" }) @Html.ValidationMessageFor(model=>model.username) </div> <div class="form-group"> <span class="">class="glyphicon glyphicon-user">Password:</span> @Html.PasswordFor(model=>model.password, new {@class = "form-control text-center", autocomplete="off" }) @Html.ValidationMessageFor(model=>model.password) </div> </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input id="BtnSubmit" type="submit" class="btn btn-success btn-pressure" name="BtnSubmit" value="Submit"/> </div> </div> } </div>
F-ES Sitecore
Я не понимаю вопроса, но если проблема заключается в том, что вам нужны разные кнопки отправки, чтобы делать разные вещи, то убедитесь, что каждая отправка имеет уникальное "имя" и "значение", а имена являются частью привязки вашей модели (в модели или в качестве параметров к действию, в которое они отправлены), а имя, которое не является пустым, - это кнопка, которая была нажата.
Если вы погуглите "c# mvc multiple submit buttons", то найдете для этого несколько более умных решений, таких как пользовательские атрибуты и т. д.
gcogco10
Я создал уникальное имя и значение для этого обработчика, но все еще не получил его правильно. В чем может быть проблема? Я думаю, что мой контроллер работает не очень хорошо. Каждый раз нажмите кнопку Создать, проверку он получает от actionResult метод входа в систему.