MVC4:将子部分视图值发送到控制器?

用户名

首先,我必须说这对MVC4来说是新手,开发此应用程序并同时学习MVC4 :)。

在此应用中,以下是父视图,其中呈现了3个局部视图,还有一个按钮:

[code]
 <td id="track">@Html.Partial("_Track",Model)</td><br>
<td id="tech">
 <div id="Technologies"> @Html.Partial("_Technology",Model)
</div></td></tr> 
..
[some code]
..

<td class="subtopic">
 <div class="subtopiclist" id="subque">@Html.Partial("_Subtopics",Model)</div><br>
 <input type="Submit" value="Fetch Interview Questions" name="Fetch" id="Fetch" />
           </td>

部分视图1(包含下拉列表):

@model MvcApplication3.Models.CommonWrapper

@using (Ajax.BeginForm("SelectTrack", "Home", new AjaxOptions { UpdateTargetId = "Technologies" }))
{ 
    @Html.DropDownListFor(
            m=>m.SelectedTrackId,
            new SelectList(Model.track, "TrackId", "TrackName"),
           string.Empty
        )
}
  <script type="text/javascript">
    $('#SelectedTrackId').change(function () {
        $(this).parents('form').submit();
    });
</script>

Parital View2(包含下拉列表):

@model MvcApplication3.Models.CommonWrapper
@if (Model.tech != null && Model.tech.Count() > 0)
{
    using (Ajax.BeginForm("SelectTechnology", "Home", new AjaxOptions { UpdateTargetId = "subque" }))
    { 
     @Html.HiddenFor(m => m.SelectedTrackId)
     @Html.DropDownListFor(
            m => m.SelectedTechId,
            new SelectList(Model.tech, "TechId", "TechName"),
            string.Empty
            )
    }
}

  <script type="text/javascript">
    $(document).on('change', '#SelectedTechId', function () {
        $(this).parents('form').submit();
    });

</script>

局部视图3(包含多个复选框):

@if (Model.subtopic != null && Model.subtopic.Count() > 0)
{
<table>
@for (int i = 0; i < Model.subtopic.Count; i++)
{
 <tr><td>
    @Html.CheckBoxFor(m => m.subtopic[i].IsSelected, new { id = "subTopic_" + i })
    @Html.HiddenFor(m => m.subtopic[i].SubtopicName)
    @Html.DisplayFor(m => m.subtopic[i].SubtopicName)
     <td>
     </tr>   
}
</table>

}

现在在父视图中,我想从这三个局部视图中获取值,而且还需要将这些获取的值发送给控制器。
这个怎么做 ?有人可以帮我吗
提前致谢

添加了控制器代码:

[HttpPost]
        public ActionResult SelectTrack(int? selectedTrackId)
        {
            CommonWrapper wrapper = new CommonWrapper();
            wrapper.tech = new List<TechModel>();

            if (selectedTrackId.HasValue)
            {
                wrapper.tech = (from s in CommonWrapper.GetTechnology()
                                where s.TrackId == selectedTrackId
                                orderby s.TechName
                                select s).ToList();
            }

            return PartialView("_Technology", wrapper);

        }

        [HttpPost]
        public ActionResult SelectTechnology(int? selectedTechId)
        {
            CommonWrapper wrapper = new CommonWrapper();
            wrapper.subtopic = new List<SubtopicsModel>();

            if (selectedTechId.HasValue)
            {
                wrapper.subtopic = (from s in CommonWrapper.GetSubtopics()
                                           where s.TechId == selectedTechId
                                           orderby s.SubtopicName
                                           select s).ToList();
            }

            return PartialView("_Subtopics", wrapper);

        }
大卫

尝试将ajax表单更改为仅使用jquery即可发布到所需的控制器操作。然后,这会将您的局部视图与需要更新目标分开。

您可以对调用不同控制器操作的每个下拉列表应用此方法。

删除您的Ajax.BeginForm和相应的jquery代码,并用下面的代码替换它们。

父视图

<script type="text/javascript">
    $(function ()
    {
        $("#SelectedTrackId").change(function ()
        {
            var selectedValue = $(this).val();
            $.ajax(
            {
                type: "post",
                data: selectedValue,
                url: url,
                success: function (data)
                {
                    // data contains your partial view
                    $("#some-container-id").html(data);
                }
            });
        });
    });
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将字符串化的Json从视图发送到MVC4中的控制器

来自分类Dev

MVC将数据从视图发送到控制器

来自分类Dev

部分视图计数 = 0,值未发送到控制器

来自分类Dev

将控制器的多个模型发送到单个视图以获取不同形式的MVC

来自分类Dev

MVC Ajax:如何将字符串从视图发送到控制器

来自分类Dev

无法将数据从视图发送到控制器操作 .NET MVC

来自分类Dev

ASP.NET MVC 将 List<Foo> 集合从我的视图发送到控制器

来自分类Dev

如何通过MVC C#中的控制器将模型数据发送到视图

来自分类Dev

如何从aspx视图将Checkbox选中的值发送到控制器中的Formcollection参数

来自分类Dev

如何将值从视图控件发送到angularjs控制器..?

来自分类Dev

尝试将值从HTML发送到控制器

来自分类Dev

如何将值列表发送到MVC3中的控制器

来自分类Dev

如何将Json字符串发送到mvc4中的控制器并反序列化json

来自分类Dev

如何在Mvc4中将Json字符串发送到控制器并反序列化json

来自分类Dev

在asp.net mvc4中将图像文件发送到控制器操作方法

来自分类Dev

将图像从HTML表单发送到MVC 4控制器

来自分类Dev

将DropDownList值从视图发布到MVC4中的控制器

来自分类Dev

将值从视图传递到MVC4中的控制器

来自分类Dev

将数组从 1 个视图控制器发送到 2 个其他单独的视图控制器

来自分类Dev

如何使用MVC,Jquery和Ajax将下拉列表中的选定值发送到控制器

来自分类Dev

无法使用js将文件值发送到asp.net mvc中的控制器

来自分类Dev

在codeigniter中,我通过<a>标记将php变量从视图页面发送到控制器,但是我无法在控制器页面中显示值

来自分类Dev

如何在Swift中将值发送到父视图控制器

来自分类Dev

如何在codeigniter中将多个图像的隐藏输入值从视图发送到控制器?

来自分类Dev

将类对象的IQueryable从视图发送到控制器类

来自分类Dev

如何将数据从视图发送到控制器

来自分类Dev

如何将数据从容器发送到iOS中的父视图控制器?

来自分类Dev

如何使用Ajax将数据从视图发送到控制器Laravel?

来自分类Dev

将阵列数据从laravel视图发送到控制器

Related 相关文章

  1. 1

    如何将字符串化的Json从视图发送到MVC4中的控制器

  2. 2

    MVC将数据从视图发送到控制器

  3. 3

    部分视图计数 = 0,值未发送到控制器

  4. 4

    将控制器的多个模型发送到单个视图以获取不同形式的MVC

  5. 5

    MVC Ajax:如何将字符串从视图发送到控制器

  6. 6

    无法将数据从视图发送到控制器操作 .NET MVC

  7. 7

    ASP.NET MVC 将 List<Foo> 集合从我的视图发送到控制器

  8. 8

    如何通过MVC C#中的控制器将模型数据发送到视图

  9. 9

    如何从aspx视图将Checkbox选中的值发送到控制器中的Formcollection参数

  10. 10

    如何将值从视图控件发送到angularjs控制器..?

  11. 11

    尝试将值从HTML发送到控制器

  12. 12

    如何将值列表发送到MVC3中的控制器

  13. 13

    如何将Json字符串发送到mvc4中的控制器并反序列化json

  14. 14

    如何在Mvc4中将Json字符串发送到控制器并反序列化json

  15. 15

    在asp.net mvc4中将图像文件发送到控制器操作方法

  16. 16

    将图像从HTML表单发送到MVC 4控制器

  17. 17

    将DropDownList值从视图发布到MVC4中的控制器

  18. 18

    将值从视图传递到MVC4中的控制器

  19. 19

    将数组从 1 个视图控制器发送到 2 个其他单独的视图控制器

  20. 20

    如何使用MVC,Jquery和Ajax将下拉列表中的选定值发送到控制器

  21. 21

    无法使用js将文件值发送到asp.net mvc中的控制器

  22. 22

    在codeigniter中,我通过<a>标记将php变量从视图页面发送到控制器,但是我无法在控制器页面中显示值

  23. 23

    如何在Swift中将值发送到父视图控制器

  24. 24

    如何在codeigniter中将多个图像的隐藏输入值从视图发送到控制器?

  25. 25

    将类对象的IQueryable从视图发送到控制器类

  26. 26

    如何将数据从视图发送到控制器

  27. 27

    如何将数据从容器发送到iOS中的父视图控制器?

  28. 28

    如何使用Ajax将数据从视图发送到控制器Laravel?

  29. 29

    将阵列数据从laravel视图发送到控制器

热门标签

归档