0

我需要将用户输入传递给 url。我的 CourseController 操作是:

public ActionResult Parameter(DateTime start, DateTime end)
    {
       //some operations

            return View();
    }

在我看来,我从用户那里获得了开始和结束时间。我想看到这样的网址: Course/Parameter/start=userinput && end=userinput 任何帮助将不胜感激。

My model is:
      public class MachineSql{

       public List<Machines> SqlAccessParameter(DateTime startDate, DateTime endDate)
    {

        SqlConnection myConnection = new SqlConnection(connstr);
        myConnection.Open();
        SqlCommand myCommand = new SqlCommand("DateRange",myConnection);
        myCommand.CommandType = CommandType.StoredProcedure;
        myCommand.Parameters.Add("@SP_startDate", SqlDbType.DateTime).Value = startDate;
        myCommand.Parameters.Add("@SP_endDate", SqlDbType.DateTime).Value = endDate;

        SqlDataAdapter dataAdapter = new SqlDataAdapter();
        myCommand.ExecuteNonQuery();
        dataAdapter.SelectCommand = myCommand;

        DataSet dSet = new DataSet();
        dataAdapter.Fill(dSet);

        myConnection.Close();

        List<Machines> machinePost = new List<Machines>();
        foreach (DataRow row in dSet.Tables[0].Rows)
        {
            Machines mac = new Machines();
            mac.AutoKey = (int)row["AUTOKEY"];
            mac.MachineGroup = (string)row["MACHINEGROUP"];
            mac.Duration = (int)row["DURATION"];
            mac.StartDate = (DateTime)row["STARTTIME"];
            mac.EndDate = (DateTime)row["ENDTIME"];
            machinePost.Add(mac);
        }
        return machinePost;
    }}
4

2 回答 2

0

由于您使用的是 Ajax 帮助程序,因此添加 url 参数很容易:

@using(ajax.beginform('Parameter',
                      'Course', 
                       //here is how you add url params
                       new { 
                             start = @Model.StartDate, 
                             end = @Model.EndDate  
                           } 
                       // Any ajax actions needed such as HyypMethod,
                       // OnSuccess, etc...
                       new AjaxOptions
                           {
                              //options here 
                           }, 
                       )) 

这将为您提供一个如下所示的 URL:

Course/Parameter?start=userinput&end=userinput
于 2013-02-16T00:02:28.763 回答
0

只需确保将两个字段放在名为的表单中startend并且它们应该是提交给该控制器方法的表单的一部分。当路由与该控制器方法匹配时,ASP.NET MVC 将自动将值转换为 DateTime。

如果您使用的是 jQuery ajax,则通过设置传入data

{
    start: value,
    end: value
}

并设置dataType为“json”。

有关详细信息,请参阅http://api.jquery.com/jQuery.ajax/

于 2013-02-16T00:15:08.993 回答