Javascript 基于dropdownlist项选择在mvc中更改视图

Javascript 基于dropdownlist项选择在mvc中更改视图,javascript,c#,asp.net-mvc,Javascript,C#,Asp.net Mvc,我在视图上有一个下拉列表,如下所示: <p> @Html.DropDownList("Status", new List<SelectListItem> { new SelectListItem{ Text = "Show Active", Value = "0" }, new SelectListItem{ Text = "Show Deleted", Value = "1" }}, new {

我在视图上有一个下拉列表,如下所示:

<p>
@Html.DropDownList("Status", new List<SelectListItem>
    {
    new SelectListItem{ Text = "Show Active", Value = "0" },
    new SelectListItem{ Text = "Show Deleted", Value = "1" }},
    new
         {
             onchange = @"
        var form = document.forms[0];
        form.action='deletedDistricts';
        form.submit();"
         })
但是JavaScript给出了一个运行时错误,如下所示:

0x800a138f-JavaScript运行时错误:无法设置未定义或空引用的属性“action”


我不太擅长JavaScript。知道这段代码为什么抛出空引用吗

我看不出您会有一个与下拉列表相关联的表单,请确保它用以下内容包装:

@using(Html.BeginForm("deletedDistricts", controllerName, FormMethod.Post)) {
    // drowpdown here
}
并删除form.action='deletedstrics'

form.action='deletedDistricts';
conrollerName应该是控制器的字符串名称。

我看不出您会有一个与下拉列表关联的表单,请确保它用以下内容包装:

@using(Html.BeginForm("deletedDistricts", controllerName, FormMethod.Post)) {
    // drowpdown here
}
并删除form.action='deletedstrics'

form.action='deletedDistricts';
conrollerName应该是控制器的字符串名称。

让我们再次阅读您遇到的错误:

0x800a138f-JavaScript运行时错误:无法设置属性“action” 指未定义的或空的引用

好的,现在让我们再次阅读您的代码,看看您试图在哪里设置
操作
属性。看起来就发生在这里:

form.action='deletedDistricts';
好的,看来
表单
实例在这个阶段没有定义。因此,您希望看到的下一步显然是这个
表单
实例来自何处。如果您发现您的这行代码,您不会感到惊讶:

var form = document.forms[0];

很酷,您似乎正在尝试检索DOM中的第一个
元素。但是你有这样的元素吗?您是否曾经使用
Html.BeginForm
帮助程序来呈现Html表单?回答这些简单的问题肯定会让你走上正轨。请毫不犹豫地检查您在浏览器中生成的标记。我相信这将帮助您找出丢失的位。

让我们再次阅读您收到的错误:

0x800a138f-JavaScript运行时错误:无法设置属性“action” 指未定义的或空的引用

好的,现在让我们再次阅读您的代码,看看您试图在哪里设置
操作
属性。看起来就发生在这里:

form.action='deletedDistricts';
好的,看来
表单
实例在这个阶段没有定义。因此,您希望看到的下一步显然是这个
表单
实例来自何处。如果您发现您的这行代码,您不会感到惊讶:

var form = document.forms[0];

很酷,您似乎正在尝试检索DOM中的第一个
元素。但是你有这样的元素吗?您是否曾经使用
Html.BeginForm
帮助程序来呈现Html表单?回答这些简单的问题肯定会让你走上正轨。请毫不犹豫地检查您在浏览器中生成的标记。我相信这将帮助您找出缺少的部分。

谢谢您的帮助和回复。谢谢您的帮助和回复。