2016-09-10 4 views
0

У меня есть форма, как это, на мой взгляд CONTACT_USAsp.net MVC Форма размещения

@model vidiaweb_com.Models.Contact_US 
.... 
<div id="contactus"> 
    <div class="container"> 
    <form class="form-group col-md-8"> 
     <div id="contactuspost"> 
      <h3 class="txtformat">Contact Us</h3> 
      <p class="txtformat"> 
       We are here to answer any questions you may have. Reach out to us and we will respond as soon as we can. 
      </p> 
      <p class="txtformat"> 
       Even if there is something you have always wanted to experience and can't find it on combadi, let us know and we promise we'll do our best to find it for you and send you there. 
      </p> 
      <br /> 
      <div class="form"> 
       @using (Html.BeginForm("Create", "Contact_Us")) 
       { 
        @Html.AntiForgeryToken() 
        <div class="form-horizontal"> 
         <div class="form-group"> 
          @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2 txtformat" }) 
          <div class="col-md-12"> 
           @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } }) 
           @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" }) 
          </div> 
         </div>        
         .... 
        </div> 
       } 
      </div> 
     </div> 
    </form> 
    </div> 
</div> 
.... 
@Html.Partial("_MainFooter")  

и это мой Contact_UsController

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Create([Bind(Include = "Id,Name,Email,Phone,Message,Date")] Contact_US contact_US) 
{ 
    if (ModelState.IsValid) 
    { 
     db.Contact_US.Add(contact_US); 
     db.SaveChanges(); 
     return RedirectToAction("Index","Home"); 
    } 
    return RedirectToAction("Index", "Home"); 
} 

но в виду, когда я Заполните форму и нажмите отправить , он не вызывает Create действий в контроллере Contact_Us. что-то вроде этого в моем URL

http://localhost:50074/Contact_Us/Index?__RequestVerificationToken=nrlDXOQglmGEzSQMqOqxm8ol4GiKeLffHoQUnLmuwhlIGcSFQfBrQxhZA8EL39nPLmG1FJQK42X284v60l6oepOytsmHLgwDOJYOgfmYnFU1&Name=dg&Email=d%40d.com&Phone=SF&Date=&Message=SFD

и перенаправить снова в мой индексном CONTACT_US.

У меня была другая форма в моем проекте, как эта, но эта работает правильно. кто-нибудь знает, что может быть проблема? спасибо

+1

Является ли это единственной формой на ваш взгляд? (похоже, что у вас могут быть вложенные формы, которые недействительны). И это метод 'Index()', который сгенерировал это представление. –

+0

yes @StephenMuecke У меня есть только одна форма на мой взгляд. спасибо за вашу заботу –

+0

Вы уверены? Можете ли вы опубликовать весь вид. –

ответ

1

У вас есть вложенные формы (<form class="form-group col-md-8"> содержит ваш @Html.BeginForm()), который является недопустимым html и не поддерживается.

URL-адрес вашего видения - это то, что ваши браузеры представляют внешнюю форму. Поскольку метод по умолчанию для формы является GET, а действие по умолчанию заключается в отправке методу, который сгенерировал его (в вашем случае Index()), он генерирует значение строки запроса для каждого элемента управления формой.

Удалите <form class="form-group col-md-8"> тег и его закрытия </form> тег и форму, порожденную Html.BeginForm() будет представлен метод в Create() POST.

+0

Большое вам спасибо. решена –

Смежные вопросы