【问题标题】:How to get the data from controller to view on refresh如何从控制器获取数据以在刷新时查看
【发布时间】:2018-02-06 14:40:27
【问题描述】:

控制器:

public class HomeController : Controller
{
    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 中返回所需的动态内容,但不会在视图中显示。

查看:

//Ajax 
<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
        }
    }
    )
}

<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">
            </tr>

需要 ActionResult 索引再次运行,以便将 listofDynamic 中的数据打印到视图中。

【问题讨论】:

    标签: c# asp.net ajax model-view-controller asp.net-mvc-5


    【解决方案1】:

    尝试在 ajax 的“成功”方法上重新加载所需的 div。在这里,您将返回响应(此处为 View 的纯 HTML),而不是将其绑定到任何地方。

    ajax 调用是异步的,它不会重新加载整个视图。

    找到下面的代码

    $.ajax( 
    
    
           {
                type: "POST",
                url: '@Url.Action("Index", "Home")',
                success: function (returnData,success)
                {
    
                    $("#sampleDiv").html(returnData);
    
                }
    
            }
        );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      相关资源
      最近更新 更多