2010-05-10 2 views
0

У меня есть следующий код на мой взгляд:Как читать значения, возвращаемые Json?

<% 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() {....???} 
+3

Вы смогли получить> 100 репутацию на этом сайте, но все еще не в состоянии отформатировать вопрос правильно? – Tomalak

ответ

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

Он не отображает предупреждение, а дает мне диалог, чтобы сохранить значения json. – learning

+0

Возможно, это потому, что на вашей странице есть ошибка javascript, и вызов AJAX не выполняется. Вы включили сценарии «MicrosoftAjax.js» и «MicrosoftMvcAjax.js» на свою страницу? –

+0

Спасибо. Это решило мою проблему. Как я могу отображать ошибки модели модели, возвращенные Json? Что делать, если я делаю следующее: ModelState.AddModelError ("_ FORM", "Имя пользователя или пароль неверны."); возвращение Json (новый {ModelState}); Какой должен быть мой код в представлении? – learning

0

Попробуйте это,

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

EDIT:

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

где я должен это писать? Как я могу обновить текстовые поля со значениями data.CategoryId и data.Test? – learning

Смежные вопросы