Asp.net mvc içinde Html.BeginForm () ID özelliği eklemek nasıl?


210

Formumu jquery kullanarak doğrulamak istiyorum ama IDşu andan itibaren asp.net mvc forma eklemek nasıl bir özellik yok ? Bunu kullanıyorum ...

<% using (Html.BeginForm()) {%>

ve jquery validator eklentim bunu alıyor,

var validator = $("#signupform").validate({

Şimdi kimlik vermek istiyorum signupform... Herhangi bir öneri ...


2
İyi soru, jquery ile ilgisi yok
Don Rolling

Yanıtlar:


349

Bu kimliğin eklenmesini sağlamalıdır.

ASP.NET MVC 5 ve altı:

<% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "signupform" }))
   { } %>

ASP.NET Çekirdeği: Kimliği ayarlamak için tek sözdiziminden kaçınmak için formlardaki etiket yardımcılarını kullanabilirsiniz .

<form asp-controller="Account" asp-action="Register" method="post" id="signupform" role="form"></form>

4
eylem ve denetleyici neden boş? Plz açıklayabilir misiniz?
ACP

7
Formu nereye göndermek istediğinizi bilmiyorum, bu yüzden onları boş bıraktım.
Jason Rowe

8
Ayrıca eylemin ve denetleyicinin null değerine ayarlanması, bunları zor kodlamaktan kurtarır. Formunuzu kısmi görünümde alıyorsanız ve bu kısmi Oluştur ve Düzenle gibi birden çok görünümde kullanıyorsanız bu yararlıdır.
Ken Pespisa

1
Tüm html yardımcıları için API veya belgeleri nerede bulur? Örneğin, parametrelerin ne anlama geldiğini nereden öğrenebilirsiniz?
Zapnologica

2
@Zapnologica Bu msdn.microsoft.com/en-us/library/dd460542%28v=vs.108%29.aspx adresine bir göz atın . HtmlAttributes parametresi, ad / değer çiftlerini içeren bir nesneden oluşur. yeni {id = "myid", @ class = "myclass"}
Jason Rowe

7

Projeme bazı kodlar ekledim, bu yüzden daha uygun.

HtmlExtensions.cs:

namespace System.Web.Mvc.Html
{
    public static class HtmlExtensions
    {
        public static MvcForm BeginForm(this HtmlHelper htmlHelper, string formId)
        {
            return htmlHelper.BeginForm(null, null, FormMethod.Post, new { id = formId });
        }

        public static MvcForm BeginForm(this HtmlHelper htmlHelper, string formId, FormMethod method)
        {
            return htmlHelper.BeginForm(null, null, method, new { id = formId });
        }
    }
}

MySignupForm.cshtml:

@using (Html.BeginForm("signupform")) 
{
    @* Some fields *@
}

5

In System.Web.Mvc.Html (içinde System.Web.Mvc.dll ) formuna başlamak gibi tanımlanır: - Detaylar

BeginForm (bu HtmlHelper htmlHelper, dize actionName, dize
denetleyicisiAdı, nesne routeValues, FormMethod yöntemi, nesne htmlAttributes)

Bunun gibi kullanmanız gerektiği anlamına gelir:

Html.BeginForm (dize actionName, dize denetleyicisiAdı, nesne routeValues, FormMethod yöntemi, nesne htmlAttributes)

MVC 4'te çalıştı

@using (Html.BeginForm(null, null, new { @id = string.Empty }, FormMethod.Post,
    new { @id = "signupform" }))
{
    <input id="TRAINER_LIST" name="TRAINER_LIST" type="hidden" value="">
    <input type="submit" value="Create" id="btnSubmit" />
}

4

Biraz geç olabilir ama benim durumumda kimliği 2 anonim nesneye koymak zorunda kaldı. Bunun nedeni, birincisinin rota değerleri, yani dönüş URL'si içindir.

@using (Html.BeginForm("Login", "Account", new {  ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { id = "signupform", role = "form" }))

Umarım bu birine yardımcı olabilir :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.