'/'应用程序ASP.NET直接进入URL浏览器时出现服务器错误

时间:2014-08-12 11:06:44

标签: c# asp.net visual-studio-2013

嗨我的朋友们我一直在搜索这个错误很长一段时间但我没有找到任何答案......

这是我的控制器代码:

[HttpPost]
 public ActionResult TakePool_2(ModeloGeneralVD Modelo_KVD)
    {
        if (ModelState.IsValid)
        {
            ModeloGeneralVD Modelo_Pool2 = new ModeloGeneralVD();
            kvd_dbEntities db = new kvd_dbEntities();
           // De Modelo_Pool1
            Modelo_Pool2.Nombre = Modelo_KVD.Nombre;
            Modelo_Pool2.Apellido = Modelo_KVD.Apellido;
            Modelo_Pool2.Cedula = Modelo_KVD.Cedula;
            Modelo_Pool2.Codigo_Operador = Modelo_KVD.Codigo_Operador;
            Modelo_Pool2.Cod_Compartel = Modelo_Pool2.ObtenerCodCompartel(Modelo_KVD.Codigo_Operador);

            var Lista = Modelo_Pool2.ObtenerDataKVDMaster(Modelo_Pool2.Cod_Compartel);
            Modelo_Pool2.Tipo_KVD = Lista.Type;
            Modelo_Pool2.Departamento = Lista.DeparmentName;
            Modelo_Pool2.Municipio = Lista.MunicipalityName;
            Modelo_Pool2.Centro_Poblado = Lista.VillageName;

            var Lista2 = Modelo_Pool2.ObtenerDataInstallation(Modelo_Pool2.Cod_Compartel);
            Modelo_Pool2.DANE_Departamento = Lista2.DepartmentCode;
            Modelo_Pool2.DANE_Municipio = Lista2.MunicipalityCode;
            Modelo_Pool2.DANE_Centro_Poblado = Lista2.VillageCode;

            List<SelectListItem> ListaTipoDocumento = new List<SelectListItem>();
            ListaTipoDocumento.Add(new SelectListItem { Text = "Cédula de Ciudadanía", Value = "1", Selected = true });
            ListaTipoDocumento.Add(new SelectListItem { Text = "Tarjeta de Identidad", Value = "2"});
            ListaTipoDocumento.Add(new SelectListItem { Text = "No Registra", Value = "3" });
            ViewBag.Lista_TipoDocumento = ListaTipoDocumento;

            List<SelectListItem> ListaSexo = new List<SelectListItem>();
            ListaSexo.Add(new SelectListItem { Text = "Hombre", Value = "1", Selected = true });
            ListaSexo.Add(new SelectListItem { Text = "Mujer", Value = "2" });
            ViewBag.Lista_Sexo = ListaSexo;

            List<SelectListItem> Lista_Periocidad = new List<SelectListItem>();
            Lista_Periocidad.Add(new SelectListItem { Text = "Diario", Value = "1", Selected = true });
            Lista_Periocidad.Add(new SelectListItem{Text = "Semanal",Value = "2"});
            Lista_Periocidad.Add(new SelectListItem{Text = "Mensual",Value = "3"});
            Lista_Periocidad.Add(new SelectListItem{Text = "No Registra",Value = "3"});
            ViewBag.Lista_Periocidad = Lista_Periocidad;
            return View(Modelo_Pool2);
        }
    //Hubo un error en el modelo de datos, regresar:
        return View(Modelo_KVD);
    }

当我从初始页面启动项目并收取数据并移至第二页(TakePool_2)时没有错误。

但是当我直接在浏览器中输入URL(/ Pool / TakePool_2)时,给出了一个错误:

“'/'应用程序中的服务器错误。无法找到资源”

我想这是因为我没有将数据传递给模型到控制器.. 我怎么能防止这种情况发生?

2 个答案:

答案 0 :(得分:3)

您的操作方法需要POST请求:

[HttpPost]

当您在浏览器中手动输入URL并导航到该URL时,您将发出GET请求。您需要发出POST请求或删除需要POST请求的method属性。 (或者创建第二个方法来处理GET请求。)

浏览器通常没有手动发出POST请求的选项,但您可以使用浏览器调试工具或RESTClient for Firefox等插件来实现。

答案 1 :(得分:0)

有几个http VERBS。对于您的问题,我们需要在GET和POST之间有所不同。

如果您访问某个页面,则会触发GET请求。当您启动应用程序时,您对初始页面使用GET请求,然后单击按钮或链接并调用标记为TakePool_2的方法[HttpPost]。因此,您要将数据发送到您的应用程序。

应用程序对其执行某些操作,然后返回视图。

每次直接访问都不起作用,因为您的应用程序需要POST,但您需要发出GET请求。