如何从控制器获取数据以便在刷新时查看

时间:2017-08-29 08:18:02

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

控制器:

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中的数据。

1 个答案:

答案 0 :(得分:0)

尝试重新加载所需的div成功&#39; ajax的方法。在这里,您将返回响应(纯HTML作为View here),而不是将其绑定到任何地方。

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

找到下面的代码

$.ajax( 


       {
            type: "POST",
            url: '@Url.Action("Index", "Home")',
            success: function (returnData,success)
            {

                $("#sampleDiv").html(returnData);

            }

        }
    );