2017-09-01 55 views
-1

控制器:从控制器获取数据后,以查看,如何将数据发送回视图

{ 
    private static string selection = String.Empty; 
    dynamic mymodel = new ExpandoObject(); 
    public ActionResult Post(string Name) 
    { 
     selection = Name; 
     return RedirectToAction("Index"); 
    } 
    public ActionResult Index() 
    { 
     SegmentRepository segment = new SegmentRepository(); 
     mymodel.listofSegments = segment.GetSegmentation(); 
     DynamicRepository dynamic = new DynamicRepository(); 
     mymodel.listofDynamic = dynamic.GetDynamicContent(selection); //After selecting the segmentation in the view it returns the required dynamic content in mymodel.listofDynamic but does not display it in the view. 
     return View(mymodel); 
    } 
} 

在视图中选择的分割后,它返回所需要的动态内容在mymodel.listofDynamic但确实不要在视图中显示它。

查看:

<script> 
    function seg() { 
     var employment = document.getElementById("Employment").value; 
     $.ajax({ 
      type: "POST", //HTTP POST Method 
      url: '@Url.Action("Post","Home")', // Controller/View 
      data: { 
       //Passing data 
       Name: employment //Reading text box values using Jquery 
      } 
     }) 
    } 
</script> 

<tr> 
    <td height="100"> 
     <label>220</label> 
    </td> 
    <td> 
     <select id="Employment"> 
      <option>---Select---</option> 
      @foreach (var item in Model.listofSegments) 
      {  
       <option name="selectedSegment" value="@item">@item</option> 
      } 
     </select> 
     <input type="submit" value="Send" name="submit" onclick="seg()"> 
    </td> 
    <td> 
     <select name="Dynamic"> 
      <option>---Select---</option> 
      @foreach (var item in Model.listofDynamic) 
      { 
       <option name="selectedDynamic" value="@item">@item</option> 
      }// I need the data to get listed here 
     </select> 
     <input type="submit" value="Send" name="Submit1"> 
    </td> 
</tr> 

我需要的public ActionResult Index()方法,以便在listofDynamic数据视图获取打印再次运行。我怎样才能做到这一点?

+0

你做了一个ajax调用 - ajax调用永远不会重定向(它们的全部重点是保持在同一页面上)。做一个正常的提交到你的'Post()'方法 –

回答

0

Ajax的数据部分中,使用以下:

data: { "name": employment }, //Pass value of employment variable as the name parameter 
success: function(data) { 
    alert(data); //In the success function, pass the data to be notified in the view 
} 

上面将从控制器返回数据使用Ajax查看。

在同一时间,使一个Json方法,使工作或ActionResult也会做:

public JsonResult GetResults(string name) //Here is the name parameter 
{ 
    MainEntities db = new MainEntities(); //Db context 

    var con = (from c in db.TableName 
       where c.ColumnName == name //Pass the name parameter in the query 
       select c).ToList(); 

    return Json(con); //Finally returns the result in Json 
} 
0

如果你是想通过Ajax的,你忘了成功和错误部分得到的值。 查看部分:

$.ajax({ 
      type: "POST", //HTTP POST Method 
      url: '@Url.Action("Post","Home")', // Controller/View 
      data: { 
       //Passing data 
       Name: employment //Reading text box values using Jquery 
      }, 
      success:function(result){alert(result);}, 
      error:function(error){alert(error.responseText);} 
     }) 

控制器侧像AT-2017写道JsonResult或者你可以返回局部视图/任何其他类型。

相关问题