【问题标题】:Passing parameters into htm.actionlink giving strange result将参数传递给 htm.actionlink 给出奇怪的结果
【发布时间】:2016-02-23 22:33:39
【问题描述】:

我有一个将参数传递给 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 &gt;&gt;;(末尾有分号从哪里得到?)

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

谢谢:)

【问题讨论】:

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


    【解决方案1】:

    试试

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

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

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

    编辑:

    啊,刚找到这个:

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

    【讨论】:

    • 当我在最后添加它时,它开始工作非常感谢。这个lenght 太奇怪了,但现在很沮丧。 :)
    猜你喜欢
    • 2019-06-12
    • 2013-08-20
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多