将参数传递给htm.actionlink会产生奇怪的结果

时间:2015-11-21 12:57:23

标签: c# asp.net-mvc html5 view

我有一个将参数传递给htm.action链接

我的代码:

控制器:

    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/NewsInfo?id=@news.Id"> more >>  </a>

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

如果答案是遗忘的,请不要生气我正在开始mvc的事情

谢谢:)

1 个答案:

答案 0 :(得分:1)

尝试

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

添加null作为最后一个参数。我想我以前见过这个,并且添加null就可以了。

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

编辑:

啊,刚发现这个:

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

相关问题