@Html.BeginForm 显示“System.Web.Mvc.Html.MvcForm"在页面上 [英] @Html.BeginForm Displaying "System.Web.Mvc.Html.MvcForm" on Page

查看:21
本文介绍了@Html.BeginForm 显示“System.Web.Mvc.Html.MvcForm"在页面上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个剃刀视图,我在if"语句内部添加了一个删除按钮,当视图在浏览器中呈现时,它显示System.Web.Mvc.Html.MvcForm" 旁边的删除按钮.

我该如何摆脱它?

代码如下:

@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">删除</button>}

这是它在渲染的 Razor 视图中的显示方式:

System.Web.Mvc.Html.MvcForm [删除按钮]

假装[删除按钮]是一个实际的按钮,不想截屏.

感谢您的帮助.

解决方案

推荐的表单生成方式如下:

@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">删除</button>}}

或者你可以这样做:

@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">删除</button>Html.EndForm();}

您原来的方法不起作用的原因是因为 BeginForm() 直接写入输出.

I have a razor view that I added a delete button to inside of an 'if' statement and when the view is rendered in the browser it is displaying "System.Web.Mvc.Html.MvcForm" next to the delete button.

How do I get rid of it?

Here is the code:

<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>

Here is how it shows up in the rendered Razor View:

System.Web.Mvc.Html.MvcForm [Delete Button]

pretend that [delete button] is a an actual button, didn't feel like taking a screen shot.

Thank you for your help.

解决方案

The recommended way to generate a form is the following:

<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>

Alternatively you could do this:

<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>

The reason why your original approach did not work is because BeginForm() writes directly to the output.

这篇关于@Html.BeginForm 显示“System.Web.Mvc.Html.MvcForm"在页面上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆