2011-10-25 188 views
0

在我的视图中,我有一个表中拉入各种数据的表。最初它只显示该用户可操作的行。但是,也可以显示所有行。为了实现这一目标,我在表格上方有两个超链接,其中“?isRequiredAction = true”和“?isRequiredAction = false”的hrefs。在Controller中,我有以下几点:如何将视图中的数据传递给控制器​​

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

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

+1

你可以通过邮政方式发送它,如果你想。 – Birey

回答

3

MSDN文章应该帮助。

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

+1

如果每个人都能理解MSDN文章,为什么我们需要像stackoverflow这样的网站? –

0

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

  1. www.yourapp.com/home
  2. www.yourapp.com/home/showall

之后,你就可以使两条路线都以相同的动作为目标,或为这些路线中的每条路线创建不同的动作。你的选择!

0

从技术上讲,我不认为有适合您需要的非常合适的解决方案,因为您不想制作链接表单对象,也不会“弄脏”URL。我建议你坚持你的第一种方法,因为弄脏URL是没有问题的。通过“弄脏”你的URL,你可以使链接可收藏。如果你真的关心它,那么你可以有两个选择:

(1)使用Ajax。这样你的URL将不受影响;但是,您失去了书签功能。

(2)使用URL重写使您的URL“非常漂亮”。这种方法在底层,等于“弄脏”URL,但是以“漂亮”的方式。

相关问题