C# 多个提交按钮在控制器中获取空值?

C# 多个提交按钮在控制器中获取空值?,c#,asp.net-mvc-4,razor,submit,C#,Asp.net Mvc 4,Razor,Submit,我使用mvc4,我从 我的模型有以下代码 public class catagorygroup { public List<CatagoryModel> catagoryModel { get; set; } } public class CatagoryModel { public int category_id { get; set; } public string english_cate

我使用mvc4,我从

我的模型有以下代码

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; }
    }
公共类分类组
{
公共列表分类模型{get;set;}
}
公共类分类模型
{
公共int类_id{get;set;}
公共字符串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/>
            }
            }     
@for(int i=0;i
@Html.HiddenFor(model=>model.catagoryModel[i].category\u id);
@Html.HiddenFor(model=>model.catagoryModel[i].english\u category\u name);


} }
我的观点是这样的

        @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/>
            }
            }     

如果我点击第一个按钮运动按钮,我会得到这样的“Name,Id”值

        @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/>
            }
            }     

但是如果我点击除第一个按钮以外的任何按钮,我会得到这样的[Null值]


我的代码中出了什么问题,看起来它可能更适合作为锚定标记

@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" });
见:

样本:

//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 }
        );
    }
}

看看这个,可能有用

@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" });

您正在一页中制作多个表单!!是的。像“体育、艺术、博客等”这样的每个按钮都有自己的提交按钮Form@AshokDamani但它将发布整个模型,我只需要获取所选按钮的“类别id,英语类别名称”,例如,如果我单击“运动=我将获得一些id和名称”,如果我单击“Art=它应该只提供Art id和名称“get it No im getting error/Category/News?english_Category_name=Blogs&Category_id=21和HTTP 404 error我如何在控制器中获取这些值删除
News
方法上的
HttpPost
属性。否,我在URL中得到的值类似于以下类别/新闻?英语\u类别\u名称=博客和类别\u id=21,但仍然是HTTP 404错误,我为您编辑了一个示例。但是,如果操作链接不起作用,您可能会遇到一些路由问题。@Romoku。谢谢你的代码。你能帮我解决路由问题吗