2013-03-14 18 views
0

我不知道我需要在MVC4项目中做什么。它在MVC3项目中运行良好。JQuery getJSON无法在MVC4项目中工作

我试图调用控制器方法来获得Json结果。我想在客户端输入用户名后显示名和姓。我使用getJson从控制器类中获取Json。它工作在mvc3项目中找到,但在我转移到MVC4 JQuery方法没有运行。

我的控制器:

public JsonResult PopulateDetails(EditUserModel model) 
    { 
     EditUserModel userResultModel = new EditUserModel(); 

     userResultModel.LastName = "John"; 
     userResultModel.FirstName = "Marry"; 


     return Json(userResultModel, JsonRequestBehavior.AllowGet); 
    } 

笔者认为:

<script type="text/javascript"> 



function PopulateData() { 
     var user = {}; 
     user.UserName = $("#UserName").val(); 
     $.getJSON("PopulateDetails", user, updateFields); // Call the Function from Controller 

    }; 

    updateFields = function (data) { 


     $("#FirstName").val(data.FirstName); 
     $("#LastName").val(data.LastName); 

    }; 

<div class="editor-field"> 
     @*@Html.EditorFor(model => model.UserName)*@ 
     @Html.TextBoxFor(model => model.UserName, new { tabindex = "1", onblur = "javascript:PopulateData();" }) 
     @Html.ValidationMessageFor(model => model.UserName) 
    </div> 

<div class="editor-label"> 
     @Html.LabelFor(model => model.FirstName) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.FirstName) 
     @Html.ValidationMessageFor(model => model.FirstName) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.LastName) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.LastName) 
     @Html.ValidationMessageFor(model => model.LastName) 
    </div> 

请让我知道什么是错在MVC4项目。

谢谢..

+0

当您在项目中升级MVC版本时,是否更新了js库和页面引用? – 2013-03-14 04:29:07

+0

尝试多一点调试,在chrome中检查网络选项卡或使用fiddler查看当用户输入用户名时是否实际进行请求。 – gdp 2013-03-14 05:17:56

+0

我将所有脚本放入@section Scripts {}然后为我工作。 – 2013-04-22 06:45:53

回答

0

我把我所有的脚本到

@section Scripts { 

      <script type="text/JavaScript"> { // My Function } } 

然后为我工作。