Asp.net mvc 3 使用超链接时向ActionMethod传递数据的方法

Asp.net mvc 3 使用超链接时向ActionMethod传递数据的方法,asp.net-mvc-3,Asp.net Mvc 3,除了querystring之外,还有其他方法通过重定向传递值(因为超链接不会POST)而不是通过querystring传递值吗?我想在单击超链接时向我的操作方法发送一些内容,但不是通过路由url参数。我不想总是公开它们,或者有时它们是过于复杂的字符串,这会让url中的内容一团糟(编码等) 我的viewModel对象显然只在回发时才存在,如果我没有错的话,超链接不会发布。要发送其他数据,您需要使用表单通过post提交,或者使用ajax提交。不过,在一个动作中加入一个表单帖子是相当轻松的 @usin

除了querystring之外,还有其他方法通过重定向传递值(因为超链接不会POST)而不是通过querystring传递值吗?我想在单击超链接时向我的操作方法发送一些内容,但不是通过路由url参数。我不想总是公开它们,或者有时它们是过于复杂的字符串,这会让url中的内容一团糟(编码等)


我的viewModel对象显然只在回发时才存在,如果我没有错的话,超链接不会发布。

要发送其他数据,您需要使用表单通过post提交,或者使用ajax提交。不过,在一个动作中加入一个表单帖子是相当轻松的

@using(Html.BeginForm("ActionName","ControllerName",FormMethod.Post)){
...
}

回答我的问题我是对的,超链接不会发布,所以我唯一的选择就是只使用超链接,通过querystring将数据发送到action方法?我知道如何使用Html.BeginForm,但这通常是通过保存事件(按钮等)来进行发布等。我想,虽然这并不重要,但我可以将表单中的超链接包围起来,并在单击时将其发回?不仅仅是重定向?也许我只是把基本原理搞错了是的,超链接只是浏览器地址栏的“快捷方式”。使用超链接传递参数的唯一方法是将它们放入url(querystring)中。不管你的超链接是否在表单中,它们都不会提交表单,除非你对hyperlink.cool使用一些javascript和onclick处理程序,这就是我的想法。所以,除了按钮之外,这几乎是我回发的唯一选择。而且,不保存也不一定不好。POST就是简单地发布数据——这似乎是你想要做的。我实际上想做一个GET…不保存是什么意思?你是说perist将数据发布到数据库?是的,我需要回一个url,所以我真的要做一个get。唯一的问题是,如果我使用一个按钮,我需要能够根据我单击提交的项目发回我的一个模型属性的特定值。因此,操作方法将从仅提交页面上列出的某个项目中获取属性值…所有项目旁边都将有一个按钮,因此每次单击其中一个项目时,我需要返回该特定项目的某个值