停止在页面加载时触发@ HTML.Action

时间:2014-10-21 09:25:30

标签: c# html asp.net-mvc

在我的视图中,我总是在页面加载时触发@HTML.Action

<table style="margin:0 auto;margin-top:-10px;margin-bottom:20px;">
    <tr>
        <td>
            @Html.Action("Search", new
            {
               id = @ViewData["id"]
            })
        </td>
    </tr>
</table>

但是,在我按下“搜索”按钮之前,我不希望这个动作被解雇..

我有Html.beginform会发帖子 - 这就是我希望@Html.Action被解雇的时候。

@using (Html.BeginForm("Search", "Search", FormMethod.Post))
{
 // a submit button and the @Html.Action are in here. So I am surprised the @HTML.Action is fired on load
}

Action事件的一部分 - 注意:partial返回绑定到DevExpress GridView对象的List

[ValidateInput(false)]
[Authorize]
public ActionResult Search(string Ids)
{
     return PartialView("Search", My List<T> Object);
}

但我想我需要的代码是在View端?

干杯

1 个答案:

答案 0 :(得分:2)

通过HttpMethod,您可以检查页面是否已被回发。因此,只要Http方法是POST,就显示搜索。

<table style="margin:0 auto;margin-top:-10px;margin-bottom:20px;">
<tr>
    <td>
        @if(Request.HttpMethod.Equals("POST",StringComparison.InvariantCultureIgnoreCase))
        {
            @Html.Action("Search", new
            {
               id = @ViewData["id"]
            })
        }
    </td>
</tr>