Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Ajax.BeginForm-可能的错误-MVC_Asp.net Mvc - Fatal编程技术网

Asp.net mvc Ajax.BeginForm-可能的错误-MVC

Asp.net mvc Ajax.BeginForm-可能的错误-MVC,asp.net-mvc,Asp.net Mvc,如果您在Ajax.BeginForm中有Html.Hidden(…),并且您多次提交表单,并且您正在使用ViewData或其他方法更新隐藏字段的值,则该字段不会更新。可能是因为Html.Hidden是一个服务器端控件。(Html.Hidden位于UpdateTargetId div内) 另一种情况是,如果在Ajax.BeginForm或其他内容中有Html.TextBox,您需要使用某种if,else子句根据Ajax请求的结果隐藏/显示它。它不会出现/消失 这个问题在这里被问了无数次,我已经回答

如果您在
Ajax.BeginForm
中有
Html.Hidden(…)
,并且您多次提交表单,并且您正在使用
ViewData
或其他方法更新隐藏字段的值,则该字段不会更新。可能是因为
Html.Hidden
是一个服务器端控件。(
Html.Hidden
位于UpdateTargetId div内)


另一种情况是,如果在
Ajax.BeginForm
或其他内容中有
Html.TextBox
,您需要使用某种if,else子句根据Ajax请求的结果隐藏/显示它。它不会出现/消失

这个问题在这里被问了无数次,我已经回答了无数次——这是出于设计:HTML助手在查看ViewData或模型之前,在绑定时总是使用发布的值。这基本上意味着您不能更改控制器动作中的值,这是出于设计。如果您不喜欢这种设计,或者只是:

<input type="hidden" name="foo" value="<%: ViewData["foo"] %>" />

如果使用html帮助程序:

<%: Html.Hidden("foo") %>


如果有一个发布值
foo
,那么无论您在
ViewData

中输入什么,都将使用该值,但这仍然排除了我的第二个顾虑。根据模型包含的内容隐藏/显示Html.TextBoxx。您的第二个问题完全不可理解。我所理解的只是隐藏/显示和消失。也许你可以试着更具体一点。你不能在视图中测试模型的值,然后根据这个值包括或不包括这个文本框吗?这正是我所做的。测试视图中模型的值,并基于此值包括或不包括此文本框。当我调试代码时,它甚至碰到了正确的“if”子句。为什么它不在屏幕上输出是我关心的问题。所有这些“if-else”子句都在一个表中,我在这里和那里重新排列了列,它开始为FireFox工作。它已经在为ie8工作了。