如何将数据从View传递到Controller

时间:2011-10-25 20:05:47

标签: asp.net-mvc model-view-controller

在我的视图中,我有一个表格可以输入各种数据。最初它只显示该用户可操作的行。但是,还有一个显示所有行的选项。为了实现这一目标,我在表格上方有两个超链接,hrefs为“?isRequiredAction = true”和“?isRequiredAction = false”。在Controller中,我有以下内容:

public ActionResult Index(bool? isRequiredAction){
string userId = User.Identity.Name;
bool ira = true;
if (isRequiredAction != null)
{
    ira = Convert.ToBoolean(isRequiredAction);
}
...
return View(model);

所以,现在Controller正在从通过单击这些链接创建的查询字符串中获取其参数。我对这种方法不满意,因为我不想用这个查询弄脏URL。有没有更简单的方法来实现我的要求?如果可能的话,我们希望避免将链接转换为表单对象。感谢。

3 个答案:

答案 0 :(得分:3)

这篇MSDN文章应该会有所帮助。

从视图到控制器,您可以执行HttpPost,也可以将数据作为参数传递。

答案 1 :(得分:0)

您可以创建两个不同的custom routes,例如:

  1. www.yourapp.com/home
  2. www.yourapp.com/home/showall
  3. 之后,您可以使两个路径都针对相同的操作,或者为每个路径创建不同的操作。你的选择!

答案 2 :(得分:0)

从技术上讲,我不相信有一个非常合适的解决方案可以满足您的需求,因为您不希望将链接形成对象,也不会“弄脏”URL。我建议你坚持使用第一种方法,因为弄脏URL没有任何问题。通过“弄脏”您的网址,您可以将链接设为可收藏。如果您真的关心它,那么您可以有两个选择:

(1)使用Ajax。这样您的网址就不会受到影响;但是,你丢失了书签。

(2)使用URL重写使您的网址“漂亮”。这种方法,在引擎盖下,等于“弄脏”URL,但是以“漂亮”的方式。

相关问题