我需要这个,我点击哪个项目,将Id
发送到GetProduct()
行动。我使用了hidden
元素,但它不起作用:
@using (Ajax.BeginForm("GetProduct", "Product", new AjaxOptions { UpdateTargetId = "getProductResult" }, new { id = "productForm" }))
{
foreach (var item in list)
{
<a href="#" onclick="$('#productForm').trigger('submit');">@item.Name</a>
//this hidden always send '1', but I want to send item's Id
<input type="hidden" id='product_@(item.Id)' name ="id" value="@item.Id" />
}
<noscript>
<input type="submit" id="sendButton" />
</noscript>
}
我哪里错了?如何发送Id
?
答案 0 :(得分:1)
隐藏的输入名称为“id”,并且在for循环中增加了时间。 因此它不起作用..
请勿直接点击按钮提交表单。将ID存储在按钮的rel属性中。 并在单击时将其值赋值给隐藏变量,然后提交表单..
<a href="#"
rel="@(item.id)"
onclick="$('#id').val($(this).attr('rel')); ('#productForm').trigger('submit');">
@item.Name
</a>
将onClick代码放在单独的函数中将会优先:)
选中此Fiddler
答案 1 :(得分:1)
试试这个。
foreach (var item in list)
{
@using (Ajax.BeginForm("GetProduct", "Product", new AjaxOptions { UpdateTargetId = "getProductResult" }, new { }))
{
<a href="#" class="anchor" >@item.Name</a>
//this hidden always send '1'.
<input type="hidden" id='product_@(item.Id)' name ="id" value="@item.Id" />
<noscript>
<input type="submit" id="sendButton" />
</noscript>
}
}
<script>
$(function(e){
$('.anchor').click(function(e){
//get the parent form.
var parentform= $(this).parents('form:first');
parentform.submit();
});
});
</script>