MVC在客户端保存动作参数值并在重定向到带参数的动作时使用它们的方式是什么?

时间:2014-01-21 05:40:46

标签: asp.net-mvc-4

如果我在某个页面上并决定单击取消,我想将其重定向到带参数的操作方法。但要做到这一点,在页面上保存动作参数值的方法是什么,稍后在点击链接或按钮时使用它们。

一种方法是在呈现页面时在页面中创建隐藏字段并在其中保存值。使用Java脚本从中提取值并更改文档

这是在mvc中执行此操作的正确方法,还是有更简洁的方法来实现此目的。请建议。

2 个答案:

答案 0 :(得分:0)

如果您需要使用按钮,则需要使用jquery(或vanilla java脚本)按钮将用户重定向到某个位置。作为选项,您可以使用data-url属性创建按钮,并使用@Url.Action辅助方法(而不是Html.ActionLinkActionLink生成整个a标记所有html参数,如href和您提供的其他参数,但Url.Action仅生成url - href属性的值)以生成带参数的链接,并实现按钮单击事件处理程序以通过此URL重定向用户。例如:

按钮(视图,Razor语法):

<input type="button" data-url="@Url.Action("Action","Controller", new { parameter=value }, null)" value="Click me" id="my-button"/>

相关jquery:

   $(document).ready(function(){
        $('#my-button').click(function(){
            window.location.href = $(this).data('url');
        });
    });

答案 1 :(得分:0)

1)如果你已经在数据库中有参数。

您需要的只是传递id或点击的数据,您可以从控制器中检索所需的值。

在语法中传递值。

 @Html.ActionLink("cancle","ActionName","ControllerName", new { id = Model.Id, type = "button" })

在控制器中使用此id并从数据库中获取参数并继续。

2)如果动态获得参数(在DB中不可用)。

您的方法会很好(通过将其保存在隐藏字段中,然后在控制器中检索或在JS中处理它)。