我正面临一个问题。
我在div中的webform中放置了几个下拉菜单和输入控件。 当我点击Add按钮时,上面的div使用javascript生成 所有控件都将通过具有不同ID的javascript动态生成 并在下面附上。
$("#xra-products-wrap").append(strVar).html();
当我点击页面中的保存按钮时,它是一个ajax提交
@(Ajax.Beginform (){}
在这种情况下,如何从控件获取值并将其发送到控制器。当我点击添加按钮时,我可以将值存储在javascript中。但是点击保存后如何将数据传递给控制器。我可以用javascript存储数据。但在提交表格时,我无法将其发送给表格。
请帮助你。
答案 0 :(得分:1)
您需要使用@Ajax.BeginForm
参数调用AjaxOptions
来驱动其行为。此参数的Url
属性指定将发送AJAX请求的位置(在这种情况下,我假设它将路由到控制器操作方法的URL)。参数的UpdateTargetId
属性指定哪个客户端DOM元素将从action方法的返回值(例如,可能是PartialViewResult
)接收呈现的HTML。
您还可以在OnSuccess
参数中设置OnFailure
和AjaxOptions
属性,以指定分别在成功和失败时必须执行的JavaScript代码。
@Ajax.BeginForm
将生成代码以将表单值(甚至是动态添加的元素)提交到指定的URL,处理响应并呈现数据有效负载(如果返回PartialViewResult
,则为HTML )在UpdateTargetId
指定的DOM元素内。因此,您不必在JavaScript中存储表单值,也不必手动将它们提交给控制器操作。
说,您需要在提交值后刷新表单。使用表单元素创建局部视图,并使用RenderPartial
在主页上的<div>
元素内呈现局部视图。然后,将AjaxOptions.Url
的值设置为将处理表单的控制器操作的URL,将AjaxOptions.UpdateTargetId
的值设置为<div>
元素的ID。
有关详细信息,请参阅MSDN上的AjaxExtensions.BeginForm和AjaxOptions。
答案 1 :(得分:0)
我假设你想从表单元素中获取信息。
var dropdown = $("select[name='dropdown']").val();
var text = $("input[name='text']").val();
你应该能够以这种方式获得这些领域的价值。使用这些值,您应该能够对服务器进行ajax调用。