如何读取Json返回的值?

时间:2010-05-10 11:07:30

标签: asp.net-mvc-2

我在视图中有以下代码:

 <% using (Ajax.BeginForm("JsonCreate", new AjaxOptions { OnComplete = "createCategoryComplete" }))


  { %><div id="createCategory">
        <fieldset>
            <legend>Add new category</legend>
            <p>

<%=Html.TextBox("CategoryId")%>
<%=Html.TextBox("Test")%>
            <label for="name">Name:</label>
            <%= Html.TextBox("Name")%>
            <%= Html.ValidationMessage("Name")%>

        </p>
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
</div>

在控制器中,代码如下:

[AcceptVerbs(HttpVerbs.Post)]
    public JsonResult JsonCreate(string Name)
    {
        if (ModelState.IsValid)
        {
            try
            {


                //Return a json object to the javascript
                return Json(new { CategoryId = 123, Test= "test successful" });
            }
            catch
            {
                #region Log errors about the exception
                //Log error to administrator here
                #endregion
            }
        }

        //If we got this far, something failed, return an empty json object
        return Json(new { /* Empty object */ });
    }

视图中的代码应该是以下函数读取Json返回的值并更新CategoryId和Test的文本框?

  function createCategoryComplete() {....???}

2 个答案:

答案 0 :(得分:0)

试试这个,

success: function(data) {
         alert(data.CategoryId + " " + data.Test);

修改

function createCategoryComplete(data)
{
   document.getElementById("UrTxtBoxID").value = data.Test;
}

答案 1 :(得分:0)

function createCategoryComplete(e) {
    var obj = e.get_object();
    alert(obj.CategoryId + ' ' + obj.Test);
}