@ Html.BeginForm 페이지에“System.Web.Mvc.Html.MvcForm”표시


97

'if'문 내부에 삭제 버튼을 추가 한 면도기 뷰가 있으며 뷰가 브라우저에서 렌더링 될 때 삭제 버튼 옆에 "System.Web.Mvc.Html.MvcForm" 이 표시 됩니다.

어떻게 제거합니까?

다음은 코드입니다.

<div id="deletestatusupdate">
    @if (update.User.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase))
    {
        @Html.BeginForm("deleteupdate", "home")
        @Html.Hidden("returnUrl", Request.Url.ToString())
        <button name="id" value="@update.StatusUpdateId">Delete</button>
    }
</div>

렌더링 된 Razor보기에 표시되는 방법은 다음과 같습니다.

System.Web.Mvc.Html.MvcForm [삭제 버튼]

[삭제 버튼]이 실제 버튼 인 척하고 스크린 샷을 찍는 것 같지 않았습니다.

도와 주셔서 감사합니다.

답변:


147

양식을 생성하는 권장 방법은 다음과 같습니다.

<div id="deletestatusupdate">
    @if (update.User.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase))
    {
        using(Html.BeginForm("deleteupdate", "home"))
        {
            @Html.Hidden("returnUrl", Request.Url.ToString())
            <button name="id" value="@update.StatusUpdateId">Delete</button>
        }
    }
</div>

또는 다음을 수행 할 수 있습니다.

<div id="deletestatusupdate">
    @if (update.User.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase))
    {
        Html.BeginForm("deleteupdate", "home");
        @Html.Hidden("returnUrl", Request.Url.ToString())
        <button name="id" value="@update.StatusUpdateId">Delete</button>
        Html.EndForm();
    }
</div>

원래 접근 방식이 작동하지 않은 이유 BeginForm()는 출력에 직접 쓰기 때문 입니다.


3
@using(Html.BeginForm("deleteupdate", "home"))나를 위해 일하는 사용
Gautam Beri

27

문제를 사용하는 대신 @using을 사용하십시오. MVC 4를 사용하고 있습니다.

@using(Html.BeginForm("deleteupdate", "home"))
{
    @Html.Hidden("returnUrl", Request.Url.ToString())
    <button name="id" value="@update.StatusUpdateId">Delete</button>
}

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