我是mvc的新手。我设计了一个表单,当我点击提交按钮时,右操作方法正在调用,但表单字段的值没有通过。
这是我的观看代码
<div id="mydiv">
@using (Html.BeginForm("Save", "Game", FormMethod.Post, new { @Id = "Form1" }))
{
<table border="0">
<tr>
<td>Name :</td>
<td><input name="name" type="text" /></td>
</tr>
<tr>
<td>Salary :</td>
<td><input name="salary" type="text" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Save" /> </td>
</tr>
</table>
}
</div>
这是我的行动方法
public ActionResult Save(string str1, string str2)
{
return View("Message");
}
当保存被称为str1
&amp; str2
正在null
请帮助我传递价值,并讨论从视图到操作方法传递价值的各种技巧。感谢
答案 0 :(得分:4)
更改您的控制器
public ActionResult Save(string name, string salary)
{
return View("Message");
}
因为您必须使用已在name
input
<input name="name" type="text" />
<input name="salary" type="text" />
如果要返回部分视图。
return PartialView("Message", <<OptionalPartialViewModel>>);
答案 1 :(得分:3)
您应该首先了解ASP.NET MVC中的约定。您应该使用模型在控制器和视图之间进行通信。
首先创建模型类型:
public class SalaryModel
{
public string Name { get; set; }
public string Salary { get; set; }
}
使用HTML帮助程序创建表单并强烈输入您的视图:
@model SalaryModel
<div id="mydiv">
@using (Html.BeginForm("Save", "Game", FormMethod.Post, new { @Id = "Form1" }))
{
<table border="0">
<tr>
<td>Name :</td>
<td>@Html.TextBoxFor(item => item.Name)</td>
</tr>
<tr>
<td>Salary :</td>
<td><input name="salary" type="text" /></td>
</tr>
<tr>
<td colspan="2">@Html.TextBoxFor(item => item.Salary)</td>
</tr>
</table>
}
</div>
然后你可以获得模型中的表单值:
[HttpPost]
public ActionResult Save(SalaryModel model)
{
return View("Message");
}
ASP.NET MVC网站上有一个很棒的tutorial可以帮助您掌握基础知识。
答案 2 :(得分:1)
MVC通过名称将表单输入绑定到Action
。您应该将方法参数更改为与表单相同的参数。此外,您缺少HttpPost
属性:
[HttpPost]
public ActionResult Save(string name, string salary)
{
/*Do Stuff here*/
return View("Message");
}