2016-04-11 1 views
0

Wenn ich auf Absenden klicken, bekomme ich einen 404-Fehler, Seite kann nicht gefunden werden.Seite gibt 404 Fehler beim Senden mit eckigen Raster und asp.mvc

Ich benutze angular-ui-Grid mit ASP.MVC, um eine Liste von PDFs aus einer SQL Server-Datenbank zurückzugeben. Beim ersten Laden der Seite wird das Raster mit allen PDFs gefüllt und paginiert. Ich habe der Seite einige Eingabefelder hinzugefügt, so dass Sie nach dem erstmaligen Laden nach Name und Datumsbereich suchen können. Wenn auf die Schaltfläche geklickt wird, gibt die Seite einen 404-Fehler zurück, der nicht gefunden werden kann.

Ansicht

@model WSCWebsite.Models.SC_Opinions_Search_Result 

@using (Html.BeginForm("Opinions", "Home", FormMethod.Post, new {@class = "form-horizontal", @id = "searchForm"})) 
{ 
<p>Enter search information into one or more of the fields below.</p> 

<p>Using more than one field will result in a more narrow search.</p> 

<p>Opinions and orders published prior to 2006 are not available in this search.</p> 
<div class="well" ng-controller="OpinionDefaultData"> 
    <div class="form-group"> 
     <label class="control-label col-sm-3">Start Date</label> 
     <div class="col-sm-5"> 
      <input type="text" ng-model="StartDate" class="datefield" /> 
      <span style="padding: 0 0 0 3px">example: 2/27/2006</span> 
     </div> 
    </div> 

    <div class="form-group"> 
     <label class="control-label col-sm-3">End Date</label> 
     <div class="col-sm-5"> 

      <input type="text" ng-model="EndDate" class="datefield" /> 
      <span style="padding: 0 0 0 3px">example: 12/27/2014</span> 
     </div> 
    </div> 

    <div class="form-group"> 
     <label class="control-label col-sm-3">Appellant</label> 
     <div class="col-sm-5"> 
      <input type="text" ng-model="Appellant" /> 
     </div> 
    </div> 

    <div class="form-group"> 
     <label class="control-label col-sm-3">Appellee</label> 
     <div class="col-sm-5"> 
      <input type="text" ng-model="Appellee" /> 
     </div> 
    </div> 

    @*<div class="form-group"> 
      <label class="control-label col-sm-3">Docket Number</label> 
      <div class="col-sm-5"> 
      <div> 
       @Html.TextBoxFor(m => m.DocketNumber, new { @class = "form-control", @style="display:inline-block; width:220px" }) 
       <span style="padding: 0 0 0 3px">example: 12/27/2014</span> 
      </div> 
      </div> 
     </div>*@ 

    <div class="form-group"> 
     <div class="col-sm-4"></div> 
     <div class="col-sm-2"> 
      <input type="button" value="Clear Form" onclick="history.go(0)" class="btn btn-primary" /> 
     </div> 
     <div class="col-sm-2"> 
      <button ng-click="SearchOpinions()" class="btn btn-primary">Search</button> 
     </div> 

    </div> 
</div> 

MVC-Controller

[HttpGet] 
    public JsonResult GetOpinions(DateTime? StartDate, DateTime? EndDate, string Appellant, string Appellee, string DocketNumber) 
    { 
     if (EndDate != null) 
     { 
      EndDate = EndDate.Value.AddHours(23); 
     } 
     OpinionEntities dbContext = new WSCWebsite.Models.OpinionEntities(); 
     var lst = dbContext.SC_Opinions_Search(DocketNumber,Appellant, Appellee, StartDate, EndDate, 200).ToList(); 

     return Json(lst, JsonRequestBehavior.AllowGet); 
    } 

Winkelregler

var app = angular.module('WSCWebSite', ['angularUtils.directives.dirPagination']); 

app.controller("OpinionDefaultData", function ($scope, $http) { 

$scope.StartDate = ""; 
$scope.EndDate = ""; 
$scope.Appellant = ""; 
$scope.Appellee = ""; 
$scope.DocketNumber = ""; 

$scope.SearchOpinions = function() { 
    $scope.Opinions = []; //declare an empty array 
    $http.get("/Home/GetOpinions", { 
     params: { 
      StartDate: $scope.StartDate, 
      EndDate: $scope.EndDate, 
      Appellant: $scope.Appellant, 
      Appellee: $scope.Appellee, 
      DocketNumber: $scope.DocketNumber 
     } 
    }).success(function (response) { 
     $scope.Opinions = response; 
    }); 
    } 
}); 

app.controller('OpinionData', function ($scope, $http) { 
    $scope.Opinions = []; //declare an empty array 
    $http.get("/Home/GetOpinions", { 
     params: { 
      StartDate: $scope.StartDate 
      , EndDate: $scope.EndDate 
      , Appellant: $scope.Appellant 
      , Appellee: $scope.Appellee 
      , DocketNumber: $scope.DocketNumber 
     } 
    }).success(function (response) { 
     $scope.Opinions = response; //ajax request to fetch data into $scope.data 
    }); 
}); 
+0

Gibt es irgendwelche Fehler auf F12? Auch wenn du einreichst, wird dein Controller getroffen? (Setzen Sie einen Unterbrechungspunkt in Ihre Controller-Post-Methode und sehen, ob es es trifft) :) –

Antwort

2

Formular hier postet,

@using (Html.BeginForm("Opinions", "Home", FormMethod.Post, new {@class = "form-horizontal", @id = "searchForm"})) 
{ 
} 

hier haben Sie Meinungen bestanden, als Aktion aber Ihr Aktionsname ist GetOpinions()

Blick auf ihm, vielleicht wird es Ihnen helfen ..

+0

Ich entfernte die Html.BeginForm Erweiterung und ersetzte sie nur mit HTML

Tag. Ich kann sehen, dass die Daten an den MVC-Controller zurückgegeben werden, aber die Ansicht wird nicht aktualisiert, um die Liste der zurückgegebenen PDFs anzuzeigen. – Drew

+0

vielleicht gibt es ein kleines Problem, geben Sie mir die richtigen Daten .. – Bharat

+0

Bharat, ich denke, Sie haben Recht, dass dies etwas Kleines ist. Welche "richtigen Daten" kann ich Ihnen geben? – Drew