У меня есть форма создания в ASP.Net MVC5. Когда страница загружается, некоторые данные должны извлекаться из БД и на кнопку отправить клик, необходимо создать диспетчер создания, чтобы сохранить данные. Проблема заключается в том, что когда страница загружается, она всегда идет на метод HTTP POST, а не метод get. (Я знаю, что несколько таких вопросов уже подняты, но мне ничего не помогает). Если я переименую имя метода HTTP POST, он вызывает метод get правильно. Имея два действия с одинаковым именем, он всегда вызывает метод HTTP POST во время загрузки страницы, а нажатие кнопки не вызывает никакого действия.Как вызвать httpget вместо сообщения для pageload в MVC5
Это приложение с высоким доверительным отношением Sharepoint для ASP.Net MVC, поэтому мой URL будет отличаться при просмотре.
Мой вид и контроллеры выглядят следующим образом. Здесь что-то не так?
@using (Html.BeginForm("Create", "Test"))
{
<div class="form-horizontal">
<div class="form-group">
@Html.LabelFor(model => model.Title, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
public ActionResult Create()
{
MyModel model = new MyModel();
string usersid = ((System.Security.Principal.WindowsIdentity)(HttpContext.User.Identity)).User.Value;
//Bind Board details
eDataAccess mda = new eDataAccess();
ExtDataTable committees = mda.GetList(usersid, "--url--");
GetAllUserList(model.comitteeslist.FirstOrDefault().Value, usersid);
// few logic
return View(model);
}
[HttpPost]
public ActionResult Create(MyModel model)
{
string usersid = ((System.Security.Principal.WindowsIdentity)(HttpContext.User.Identity)).User.Value;
// few logic
int id = Utilities.Create(model.Title, usersid, 2057, 6297,
model.desc, false, model.start, model.end);
return View();
}
Выполняется ли это каждый раз при каждой загрузке страницы даже при первой загрузке страницы или происходит это только после того, как вы отправили данные в первый раз? (Пожалуйста, возьмите 'FormMethod.Get', мой ответ был неправильным). –
Это небольшой проект и имеет только один вид на данный момент. Это происходит каждый раз для загрузки страницы. – Ramee
Первая подпись метода «ActionResult» не принимает никаких параметров. Таким образом, это будет тот, который будет вызван, когда ваша страница будет загружена. Второй, принимает «Модель» и будет вызван, когда вы отправите свою форму. Вы пытались добавить атрибут '[HttpGet]' к первому? Я честно не понимаю, что вы пытаетесь сделать здесь. Может быть, вы не разъясняете свое объяснение. – melancia