怎样才能将单元格输入控制器?

时间:2012-04-16 13:30:07

标签: jquery asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

我使用jquery的tempate来构建我的表。当用户单击我的表格的一个单元格时,我在此单元格上添加属性“name”。

我想检索单击哪个单元格以及哪个值但是我没有成功将我的值单元格检索到控制器asp mvc中。 我使用FormCollection,但我找不到我的单元格td,我也尝试了request.form [“cellTd”],但它不起作用。 在我的控制器中,单元格等于null,并且不包含元素cellTd。

感谢您的帮助。

我的观点:

@using (Html.BeginForm("Action", "Test", FormMethod.Post ))
{
<div id="TableToFill"></div>
<button id="send" value="send" name="btn" type="submit">send</button>
}

我的模板:

<script id="TableTemplate" type="text/x-jquery-tmpl">
<table class="Table">
<tbody class="BodyTable"> 
    {{each list}}
    <tr class="Item">    
        <td description="Standard${Name}" >${this.Value}</td>
        {{if $index == 0}}
        <td ><input description="high${Name}" value="" type="text" /></td>
        {{/if}}
    </tr>    
    {{/each}}  
</tbody>
</table>       
</script>

我的代码jquery

<script type="javascript">
$.getJSON("getTable", params, function (items) {
        $("#TableTemplate").tmpl(items).appendTo("#TableToFill");        
    });
    $(".Table tbody .Item td").click(function(){
    $(this).attr("name","cellTd");
    });
</script>

我的控制器

public class TestController : controller
{
    public ActionResult(FormCollection form)
    {
        String cell=Request.Form["cellTd"];
    }
}

1 个答案:

答案 0 :(得分:0)

您应该在click的{​​{1}}事件中发送您的请求:

td

现在您可以在此处检索您的值:

$(".Table tbody .Item td").click(function(){
    //you are setting the name to "CellTd"
    $(this).attr("name", "cellTd");

    var tdNameValue = $(this).attr("name"); //will always give "cellTd" as it is set above...

    //make your ajax request here
    $.ajax({
       url: 'urltocontroller',
       data: {tdName : tdNameValue},
       dataType: 'json',
       success: function(r) {
           //successcallback
       },
       type: 'POST'
    });
});