C# 多个提交按钮在控制器中获取空值?
我使用mvc4,我从 我的模型有以下代码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
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。谢谢你的代码。你能帮我解决路由问题吗