我知道控制器向页面传值用Viewbag很方便,但是由页面向控制器传值有什么好办法呢?
实际场景是:控制器向页面传值,客户在页面上修改传过来的数据后,提交,把修改后的值传回控制器,然后由控制器写入数据库。
我是用的form,但是传不过去
找控制器的[post]方法中没收到值
post、get、ajax都可以,没接受到值请核对你页面上元素的name值和你的参数名是否对应.
晕倒,你知道POST和GET吗?
可以用Html.BeginForm构建一个form窗体,然后post过去就可以了。注意控制器中的action方法要添加[httppost]特性。
接收不到值,首先看你的form提交过去的action是不是对,然后看参数是不是对应就可以了啊。实在不行你就上代码吧,说的太模糊了
首先,如果是form,直接可以提交表单数据。如果不是form,那么要传至,就必须要重新发起请求(采用ajax)。
在控制器的行为(action)里,使用:
Request.Form[key]
来获取。
你可以可以给action定义一个form属性:
public ActionResult MyAction([Form] FormColection form)//此处加个FormAttribute特性,是为了限制只对Post方式的Form数据进行处理,如果想同时处理QueryString数据,把这个去掉
{
//此处使用form读取页面提交的数据
}
/控件器/Action?aaa=aaa&bbb=bbb,一样可以传。
六楼正解