我在Mac中使用VSCode创建MVC。
参数“ new {问题= @Model}”是否不应将值从视图传递到控制器?
查看代码:
@model ProblemsV4.Models.ProblemModel
<h2>New Solution</h2>
@using(Html.BeginForm("SaveSolution", "Problem", new { problem = @Model }, FormMethod.Get))
{
<label>Solution: </label>
<input type="text" name="solution" /><br/><br/>
<input type="submit" value="Save"/>
}
控制器代码:
public IActionResult SaveSolution(ProblemModel problemModel, string solution)
{
SolutionModel model = new SolutionModel();
model.Solution = solution;
ProblemBC bc = new ProblemBC();
bc.AddSolution(model);
List<ProblemModel> models = bc.ListAll();
ViewBag.Message = "Solução inserida com sucesso";
return View("Index", models);
}
您应该HttpPost
在控制器处收到一个,并使用来发送模型的参数HiddenFor
,该类型HtmlHelper
不显示任何输入。
BeginForm方法具有许多签名,其中之一包含对象routeValues,即包含路由参数的对象。您不需要使用它,可以使用其他签名,例如:https : //msdn.microsoft.com/en-us/library/dd460344(v=vs.118).aspx
第一步:
[HttpPost]
public IActionResult SaveSolution(ProblemModel problemModel, string solution)
{
SolutionModel model = new SolutionModel();
model.Solution = solution;
ProblemBC bc = new ProblemBC();
bc.AddSolution(model);
List<ProblemModel> models = bc.ListAll();
ViewBag.Message = "Solução inserida com sucesso";
return View("Index", models);
}
第二步:
@model ProblemsV4.Models.ProblemModel
<h2>New Solution</h2>
@using(Html.BeginForm("SaveSolution", "Problem", FormMethod.Post))
{
<label>Solution: </label>
<input type="text" name="solution" /><br/><br/>
@Html.HiddenFor(model => model.Problem)
@Html.HiddenFor(model => model.Description)
@Html.HiddenFor(model => model.ID)
<input type="submit" value="Save"/>
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句