[asp.net-mvc-3] @ Html.BeginForm 페이지에“System.Web.Mvc.Html.MvcForm”표시

‘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 [삭제 버튼]

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

도와 주셔서 감사합니다.



답변

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

<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()는 출력에 직접 쓰기 때문 입니다.


답변

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

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


답변

여기에 이미지 설명 입력

이것을 위해 우리는 그들을 사용할 수 있습니다

Using(Html.Beginform("Delete", "Home", new { Id = item.id } ))
{
   @* We right the code. *@
}


답변