Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 操作未将参数传递给索引_C#_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 操作未将参数传递给索引

C# 操作未将参数传递给索引,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,在我的控制器中,我有以下代码: public ActionResult Index(int? videoId, int languageId = 0) { //Some code } 然后在我的.chtml页面中,我这样引用它: @using (Html.BeginForm("Index", "VideoLanguage", FormMethod.Post)) { @Html.Hidden("videoId",

在我的控制器中,我有以下代码:

    public ActionResult Index(int? videoId, int languageId = 0)
        {

               //Some code 
        }
然后在我的.chtml页面中,我这样引用它:

@using (Html.BeginForm("Index", "VideoLanguage", FormMethod.Post))
{
     @Html.Hidden("videoId", Model.VideoId)
     @Html.Hidden("videoLanguageId", Model.SelectedLanguage.LanguageId)

    <div>
        @Html.DropDownListFor(model => model.SelectedLanguage.LanguageId, ViewData["LanguageId"] as SelectList)
    </div>
    <div>
          <a href="@Url.Action("Index", "VideoLanguage",new { videoId = Model.VideoId, languageId = Model.SelectedLanguage.LanguageId })" class="linkbutton">Add Language</a>
    </div>

... code keeps going
@使用(Html.BeginForm(“Index”,“VideoLanguage”,FormMethod.Post))
{
@Html.Hidden(“videoId”,Model.videoId)
@隐藏(“videoLanguageId”,Model.SelectedLanguage.LanguageId)
@Html.DropDownListFor(model=>model.SelectedLanguage.LanguageId,ViewData[“LanguageId”]作为SelectList)
…代码一直在运行
因此,当我单击按钮时,从下拉列表中为LanguageId选择的值没有传递。原始值是。


<a href="@Url.Action("Index", "VideoLanguage",new { videoId = Model.VideoId, languageId = Model.SelectedLanguage.LanguageId })" class="linkbutton">Add Language</a>
在页面加载时设置,因此HTML中的值将硬编码。您需要做的是在Javascript中设置超链接参数或使用:

<input type="submit" value="Index" />

请参见尝试以下操作:

@using (Html.BeginForm("Index", "VideoLanguage", FormMethod.Post, new { videoId = Model.VideoId, languageId = Model.SelectedLanguage.LanguageId }))
{
  ....
}

您应该将参数传递给@Html.BeginForm助手,然后提交表单

@using (Html.BeginForm("Index", "VideoLanguage", FormMethod.Post, new { videoId = Model.VideoId, languageId = Model.SelectedLanguage.LanguageId }))
{
     @Html.Hidden("videoId", Model.VideoId)
     @Html.Hidden("videoLanguageId", Model.SelectedLanguage.LanguageId)

    <div>
        @Html.DropDownListFor(model => model.SelectedLanguage.LanguageId, ViewData["LanguageId"] as SelectList)
    </div>
    <div>
       <input type="submit" value="Add Language"/>
    </div>

... code keeps going
}

你做得不对。你能在这里发布你模型的代码吗?如果你这样做,我会告诉你如何正确地做。这个答案帮助我理解了问题所在。谢谢。
public ActionResult Index()
        {
//Here just get a view
        }

[HttpPost]
public ActionResult Index(int? videoId, int languageId = 0)
        {
 //Here code to save in database
        }