c# - Html.ActionLink 不传递值

标签 c# asp.net-mvc model-view-controller

我正在尝试使用 HTML.ActionLink 根据我点击的内容将一个值从我的 View 传递到我的 Controller 。例如,如果我单击“Soccer”,那么我希望将值“Soccer”传递给 Controller ​​,然后 Controller 将更改显示的内容。目前点击sport name没有任何反应,调试项目时,controller中的sport name参数为null,表示该值还没有传递给controller。

这是 View 中的代码:

         @foreach (var item in Model.Sports)
    {
        <p>
            @*@Html.ActionLink(@item, "Index", "Home")*@
            @Html.ActionLink(@item, "Index", "Home")

        </p> 
    }


</div>
<div class="col-md-4">
@foreach (var Coupon in Model.CurrentCoupons())
{
    <p>
        Coupon: @Coupon.CouponName <br />
        Event Count: @Coupon.EventsCollection.Count
        <br />
        Event:
        @foreach (var Event in Coupon.EventsCollection)
        {
            @Event.Name;<br /><br />
        }

        @foreach (var Market in Coupon.MarketList)
        {
            @Html.ActionLink(@Market.Name, "Index", "Home")<br />
        }
    </p>

    <table>    
        @foreach (var Selection in Coupon.SelectionList)
        {
            <tr>
                <td width="400">@Selection.Name</td>
                <td>@Selection.PriceFixed</td>
            </tr>
        }        
    </table>
}

Controller :

public class HomeController : Controller
{
    public ActionResult Index(string sportName)
    {
        ViewBag.Title = sportName;
        return View(new TestDataHelper(sportName));
    }
}

最佳答案

@Html.ActionLink 方法的重载之一采用路由值对象,因此您也可以发送该值来执行以下操作:

@Html.ActionLink("Soccer", "Index", "Home", new {sportName = @item}, null)

关于c# - Html.ActionLink 不传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24206341/

相关文章:

c# - 如何使用 Entity Framework 将空值传递给存储过程?

php - MVC - 用户输入验证 : controller, 模型或两者

angularjs - 创建和更新的通用名称

java - 根据 Spring 的日期和时间限制安排通知和电子邮件

c# - 有什么可以用 C# 事件做而不能用 VB 事件做的事情吗?

c# - c#生成单词组合数组

asp.net-mvc - ASP.NET MVC3 IIS无法加载样式表

asp.net - 多个 Web 项目托管在 Visual Studio 2013 中的 IIS Express 上

c# - 适用于 Windows 8 的简单数据库

c# - 如何从字符串中分离数据