2

我使用 mvc4 并从http://api.feedzilla.com/v1/categories.json获取 JSON

我的模型有以下代码

public class catagorygroup
    {

        public List<CatagoryModel> catagoryModel { get; set; } 

    }

    public class CatagoryModel
    {

        public int category_id { get; set; }
        public string english_category_name { get; set; }
    }

我的看法是这样的

        @for (int i = 0; i < Model.catagoryModel.Count; i++)
        {
            using (Html.BeginForm("News", "Catagory"))
            {

            <li> <input type="submit"   name="w8-red" class="w8-button red"  value= @Model.catagoryModel[i].english_category_name   /> </li>
        @Html.HiddenFor(model => model.catagoryModel[i].category_id);
        @Html.HiddenFor(model => model.catagoryModel[i].english_category_name); 

        <br/><br/>
            }
            }     

我的看法是这样的

在此处输入图像描述

如果我单击第一个按钮Sports Button 我会得到像这样的“Name,Id”值

在此处输入图像描述

但是如果我单击除第一个按钮之外的任何按钮,我会得到类似这样的 [Null values] 在此处输入图像描述

我的代码出了什么问题

4

2 回答 2

1

看起来它可能更适合作为锚标签。

@Html.ActionLink(model.catagoryModel[i].english_category_name,
                 "News",
                 "Catagory",
                 new { @Model.catagoryModel[i].english_category_name,
                       @Model.catagoryModel[i].category_id },
                 new { @class = "w8-button red" });

看:LinkExtensions.ActionLink

样本:

//HomeController.cs

public class HomeController : Controller
{
     public ActionResult Index()
     {
         return View();
     }

    public ActionResult DoWork(SomeDTO dto)
    {
        return View("Index");
    }
}

public class SomeDTO
{
    public int SomeId { get; set; }
    public string SomeData { get; set; }
}

//Index.cshtml

@Html.ActionLink("Home", "DoWork", new { SomeId = 1, SomeData = "World" })

//RouteConfig.cs

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home",
                            action = "Index",
                            id = UrlParameter.Optional }
        );
    }
}
于 2013-07-30T11:21:31.863 回答
0

看看这个,它可能有效

@Html.ActionLink(model.catagoryModel[i].english_category_name,
             "News",
             new { @Model.catagoryModel[i].english_category_name,
                   @Model.catagoryModel[i].category_id },
             new { @class = "w8-button red" });
于 2013-07-31T04:48:18.480 回答