asp.net mvc에서 Html.BeginForm ()에 ID 속성을 추가하는 방법은 무엇입니까?


210

jquery를 사용하여 양식의 유효성을 검사하고 싶지만 IDasp.net mvc의 양식에 양식을 추가하는 방법은 현재 속성이 없습니까? 나는 이것을 사용하고있다 ...

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

내 jquery 유효성 검사기 플러그인이 이것을 취합니다.

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

이제 나는 ID를주고 싶습니다 signupform... 모든 제안 ...


2
좋은 질문은 jquery와 아무 관련이 없습니다
Don Rolling

답변:


349

ID가 추가되어야합니다.

ASP.NET MVC 5 이하 :

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

ASP.NET Core : 양식태그 도우미를 사용 하여 id를 설정하기위한 이상한 구문을 피할 수 있습니다 .

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

4
왜 액션과 컨트롤러가 null입니까? PLZ를 설명해 주시겠습니까?
ACP

7
양식을 게시 할 위치를 모르기 때문에 null로 만들었습니다.
Jason Rowe

8
또한 조치 및 제어기를 널로 설정하면 하드 코딩하지 않아도됩니다. 이는 부분보기 내에 양식이 있고 해당 부분이 작성 및 편집과 같은 여러보기에서 사용되는 경우에 유용합니다.
Ken Pespisa

1
모든 HTML 도우미에 대한 API 또는 설명서는 어디에서 찾을 수 있습니까? 예를 들어 매개 변수가 무엇을 의미하는지 어디에서 찾을 수 있습니까?
Zapnologica

2
@Zapnologica이 msdn.microsoft.com/en-us/library/dd460542%28v=vs.108%29.aspx를 살펴보십시오 . htmlAttributes 매개 변수는 이름 / 값 쌍이 포함 된 객체로 구성됩니다. 새로운 {id = "myid", @ class = "myclass"}
Jason Rowe

7

프로젝트에 코드를 추가 했으므로 더 편리합니다.

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

에서 System.Web.Mvc.Html (에서 System.Web.Mvc.dll ) 양식을 시작는 다음과 같이 정의한다 : - 세부 사항

BeginForm (이 HtmlHelper htmlHelper, 문자열 actionName, 문자열
controllerName, 객체 routeValues, FormMethod 메소드, 객체 htmlAttributes)

다음과 같이 사용해야 함을 의미합니다.

Html.BeginForm (문자열 actionName, 문자열 controllerName, 객체 routeValues, FormMethod 메소드, 객체 htmlAttributes)

MVC 4에서 작동했습니다.

@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

조금 늦을지도 모르지만 제 경우에는 두 번째 익명 객체에 ID를 넣어야했습니다. 이는 첫 번째 경로 값, 즉 반환 URL에 대한 것이기 때문입니다.

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

이것이 누군가를 도울 수 있기를 바랍니다 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.