Json和多个部分视图

时间:2009-07-27 22:23:02

标签: jquery asp.net-mvc json

我将以稍微不同的方式重新提出这个问题。

假设我在页面上有2个或更多[相同]部分视图。

在此PartialView上有一个文本框和一个按钮。

单击按钮,我需要获取文本框的内容并执行Json回发,执行一些操作并返回结果集。

我遇到的问题是,我可以在第一部分视图中实现这一切,但不能用于任何后续部分。

事件附加到每个按钮,但是当我尝试访问文本框时,我似乎只获得了第一个文本框,而不是使用按钮获得PartialView中的文本框。

在下面的代码中,我有两次部分视图。所以文本框和按钮的两个实例。

Json代码附加到每个提交按钮,但是当我访问文本框时,我只能从第一个局部视图中获取文本。

一些代码;

部分视图:

    <%= Html.TextArea("MyTextBox", Model.Text, 3, 50, new { onkeyDown="return CheckInputLength(this)" })%>
<input id="submitText" name="submitText" type="submit" value="Add text" class="clsTest" />

一些Json代码:

$(document).ready(function() {
    $(".clsTest").each(
function() {

    $(this).unbind("click").click(function(evt) {
var commentText = jQuery.trim($("#MyTextBox").val());

1 个答案:

答案 0 :(得分:1)

嗯,问题是您有多个具有相同ID(MyTextBox)的textarea。确保您的textareas具有不同的ID。

<%= Html.TextArea("MyTextBox", Model.Text, 3, 50, 
    new { onkeyDown="return CheckInputLength(this)", 
    id = "textBox-" + Model.ID })%>

然后,我建议你有一个JS函数,它将textarea的ID作为参数:

function postComment(id) {
    var commentText = jQuery.trim($(id).val());
}

让你的提交按钮调用该功能:

<input id="submitText" name="submitText" type="submit" value="Add text" 
    class="clsTest" onclick="postComment('textBox-<%=Model.ID%>')" />