创建要传递给视图的列表

时间:2014-03-21 15:45:35

标签: c# asp.net-mvc razor

这是一个非常广泛的问题,但我想了解如何解决这个问题。我正在为按摩工作室创建一个bookingsysten。

有两种不同类型的按摩需要不同的时间。 这意味着我将不得不创建两个不同的调度表。

我想的可能是两个清单:

第一个清单:09,10,11,12,13 第二份清单:09,930,10,1030

在我看来,我希望顾客决定他想要什么样的按摩,然后呈现正确的时间表...那么,我如何以一种让我将它们传递给视图的方式创建这两个列表呢? / p>

编辑: 这就是我所做的事情:

@Html.DropDownList("Treatments", new List<SelectListItem>
{
   new SelectListItem {Text = "FirstMassage", Value = "1"},
   new SelectListItem {Text = "SecondMassage", Value = "2"},

我想根据客户的选择提出一个不同的schudule,我知道我在这里问了很多...我想我的第一个问题是,我如何创建两个不同的时间表? 在这样的列表中可能:

 List<int> schedule1 = new List<int> { 0900, 1000, 1100, 1200 };
        List<int> schedule2 = new List<int> { 0930, 1000, 1030, 1100 };

我是否可以设置一个传递&#34;右&#34;的方法。查看部分视图?

2 个答案:

答案 0 :(得分:2)

将类似Dictionary<MassageID,MassageName>的内容传递给视图。让用户从下拉列表中选择他们想要的内容。

当他们选择了一个项目时,Ajax会回到某个部分视图控制器,根据用户选择的ID加载按摩数据

答案 1 :(得分:1)

这样做:

    @Html.DropDownList("Treatments", new List<SelectListItem>
    {
       new SelectListItem {Text = "FirstMassage", Value = "1"},
       new SelectListItem {Text = "SecondMassage", Value = "2"}
},
       new { @id="ddlTreatments"} )

写jquery事件:

$('#ddlTreatments').change(function(){

var SelectedValue = $(this).val();

var Url = '@Url.Acction("yourAction",yourController)';

Url = Url + 'treatmentId=' + SelectedValue;

$.ajax({

            type:"GET",

            url: Url,
            success: function(result){
                $('#dllMassageScehdule').html(result);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){

            }
        });
    });


});

Reutrn Dropdown列表从动作作为partialview,将其放置在视图中的容器中

编写采取TreatmentId并返回已填充的计划下拉列表的操作:

public ActionResult YourAction(int treatmentId)
{

List<SelectListItem> list = new List<SelectListItem>();

list.Add(new SelectListItem {Text = "9:00", Value = "1"})

return PartialView("PartialViewDropDownSchedule",list);

}

你这样的局部视图,我使用的模型为List<SelectListItem>你必须使用你的模型取决于你的场景:

@model List<SelectListItem>

// create dropdown using model here according to your model