‘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. *@
}