如何在不同的按钮点击上调用不同的控制器操作?

时间:2012-09-10 14:40:25

标签: asp.net-mvc controller

我有多个按钮可以对收据报告执行不同的操作。打印按钮确实提示用户下载选项。该视图的代码如下:

@using (Html.BeginForm())
{ 

<fieldset style="width:525px; padding-top:20px; margin:0 auto;">
    <legend>Select Criteria</legend>

        <center>
            @Html.Partial("_MagazineType")<br /><br />
        </center>

            @Html.Partial("_RadioBtnCriteria")

            @Html.Partial("_ReportExportFormat")<br />  

        <center>                 
            <button type= "submit" id = "status" onclick="ReceiptsStatus();" >Receipts Status Details</button>
            <button type= "submit" id = "duplicate" onclick="NoDuplicate();" >No Duplicate</button>
            <button type= "submit" id = "pr_rcpt" onclick="PrintReceipts()">Print Receipts</button>                         
        </center>          

</fieldset><br />

} 

现在,当点击Receipt status detail按钮时,它再次提示下载选项,因为使用了@using(Html.BeginForm())选项。但我只想要控制器动作才能运行。同样取决于输入的参数,它必须在要调用的不同动作中进行选择。那么如何只运行该按钮的特定方法和参数。比如说日期范围必须从和过去,并且只能从日期开始传递。

1 个答案:

答案 0 :(得分:0)

在同一个视图中调用不同操作方法的多个按钮的最简单方法是用@using (HTML.BeginForm(“actionName”, “controllerName”))围绕每个按钮然后你不需要你只需要的onClick事件,每个按钮的每个回发都将引导您到指定的controllerName中指定的actionName。

此示例修改了ASP.Net网站上的电影教程:

<div style="width:100px; float:left" >
    @using (Html.BeginForm())
    {
    <p>
    <input type="submit" value="Delete" /> 
    @Html.ActionLink("Back to List", "Index")
    </p>
    }
    </div>

    <div style="width:100px; float:left">       
    @using (Html.BeginForm("Index","Movies"))
    {
    <p>
    <input type="submit" value="Cancel" /> 
    </p>
    }
</div>

希望有所帮助