2015-11-21 34 views
0

我传递参数有一个到htm.action链接传递参数到htm.actionlink给奇怪的结果

我的代码:

控制器:

public ActionResult NewsInfo(string id) 
    { 
     ViewBag.Messege = "News Detail"; 

     return View(new NewsInfoModel(id)); 
    } 

型号:

public class NewsInfoModel 
{ 
    public NewsDto News { get; private set; } 
    public List<ComentDto> comentList { get; private set; } 

    public NewsInfoModel(string id) 
    { 
     comentList = new Coment().MakeComentListForNews(id); 
     News = new NewsDao().GetNewsByID(id); 
    } 
} 

和链接代码:

@Html.ActionLink("more >>", "NewsInfo", "Home", new { id = news.Id }); 

问题是,当我开始我的网页链接有这样的格式:

http://localhost:52748/Home/NewsInfo?Length=4 

为什么Lenght = 4?为了得到它的工作,现在我做了这样的代码:

<a href="/home/[email protected]"> more >> </a> 

而且它的工作正确的,但我想用ActionLink所以如何传递参数有正确的?这两种方法有什么区别。 而最后一个问题这个链接显示more >>;(与尾的分号它从获得?)

如果答案是无视别生气了,我开始MVC的东西

谢谢:)

回答

1

尝试

@Html.ActionLink("more >>", "NewsInfo", "Home", new { id = news.Id }, null);

新增null作为最后一个参数。我想我以前见过这个,并且加了null这个伎俩。

我不确定length来自哪里,但这是Html.ActionLink有这么多重载的奇怪副作用。

编辑:

啊,刚刚发现这一点:

Why does Html.ActionLink render “?Length=4”

+1

当我在结尾处添加它,它开始感谢的作品非常多。这个“长”非常奇怪,但现在它很沮丧。 :) – Tosis