Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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# 查看页面和url中出现错误_C#_Razor_Asp.net Mvc 4 - Fatal编程技术网

C# 查看页面和url中出现错误

C# 查看页面和url中出现错误,c#,razor,asp.net-mvc-4,C#,Razor,Asp.net Mvc 4,我正在使用c和ASP.NET MVC4作为带有移动模板的web应用程序。 我的详细信息查看页面有问题。首先你从索引页面选择一些东西,然后它进入详细信息页面。我在页面上放了一个bing地图,地图没有加载。 首先,我认为地图有问题,但事实并非如此。 我注意到url是 http://localhost:2550/Place/Details 这是本页的最后一页。但是如果我像这样手动在末尾加上“1”http://localhost:2550/Place/Details/1 然后地图加载到页面上。我不明白为

我正在使用c和ASP.NET MVC4作为带有移动模板的web应用程序。 我的详细信息查看页面有问题。首先你从索引页面选择一些东西,然后它进入详细信息页面。我在页面上放了一个bing地图,地图没有加载。 首先,我认为地图有问题,但事实并非如此。 我注意到url是 http://localhost:2550/Place/Details 这是本页的最后一页。但是如果我像这样手动在末尾加上“1”http://localhost:2550/Place/Details/1 然后地图加载到页面上。我不明白为什么这是

有人知道为什么吗?谢谢

有关详细信息,请参见我的查看页面:

@model Project.Models.Place
@{ ViewBag.Title = "Details";}
<h2>Place Details</h2>
<fieldset>
<div class="display-label"> Name: @Model.Name</div>
<div class="display-label">Address: @Model.Address</div>
<div class="display-label">Post Code: @Model.PostCode</div>
<div class="display-label"> PhoneNo: @Model.PhoneNo</div>
</fieldset>

<p>    @Html.ActionLink("Back to List", "Index")</p>

<body onload="getMap();">
  <div id='myMap' style="position:relative; width:400px; height:400px;"></div>
  <div>
     <input type="button" value="createWalkingRoute" onclick="createDirections();" />
  </div>
  <div id='directionsItinerary'> </div> 
</body>

@section scripts{

 <script type="text/javascript"    src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
  <script type="text/javascript">
      var map = null;
      var directionsManager;
      var directionsErrorEventObj;
      var directionsUpdatedEventObj;

      function getMap() {
          map = new Microsoft.Maps.Map(document.getElementById('myMap'), { credentials: 'mykey' });
      }

      function createDirectionsManager() {
          var displayMessage;
          if (!directionsManager) {
              directionsManager = new Microsoft.Maps.Directions.DirectionsManager(map);
              displayMessage = 'Directions Module loaded\n';
              displayMessage += 'Directions Manager loaded';
          }
          alert(displayMessage);
          directionsManager.resetDirections();
          directionsErrorEventObj = Microsoft.Maps.Events.addHandler(directionsManager, 'directionsError', function (arg) { alert(arg.message) });
          directionsUpdatedEventObj = Microsoft.Maps.Events.addHandler(directionsManager, 'directionsUpdated', function () { alert('Directions updated') });
      }

      function createWalkingRoute() {
          if (!directionsManager) { createDirectionsManager(); }
          directionsManager.resetDirections();
          // Set Route Mode to walking 
          directionsManager.setRequestOptions({ routeMode: Microsoft.Maps.Directions.RouteMode.walking });
          var seattleWaypoint = new Microsoft.Maps.Directions.Waypoint({ address: 'Seattle, WA' });
          directionsManager.addWaypoint(seattleWaypoint);
          var redmondWaypoint = new Microsoft.Maps.Directions.Waypoint({ address: 'Redmond, WA', location: new Microsoft.Maps.Location(47.678561, -122.130993) });
          directionsManager.addWaypoint(redmondWaypoint);
          // Set the element in which the itinerary will be rendered
          directionsManager.setRenderOptions({ itineraryContainer: document.getElementById('directionsItinerary') });
          alert('Calculating directions...');
          directionsManager.calculateDirections();
      }

      function createDirections() {
          if (!directionsManager) {
              Microsoft.Maps.loadModule('Microsoft.Maps.Directions', { callback: createWalkingRoute });
          }
          else {
              createWalkingRoute();
          }
      }
  </script>

}
    public ViewResult Details(int id)
    {
        ViewBag.events = eventRepository.PlaceEvents(id);
        return View(placeRepository.Find(id));
    }

可能的原因,可能是您尚未编写具有零参数的控制器默认控制器

或者您尚未使用[HttpPost]属性编写控制器


如果您将控制器的代码放在这里,这将很容易。

如果您说最后带有/1的导航有效,但您当前的url没有数字,则您在索引页上的url是错误的。 您的url现在类似于

@Html.ActionLink("Details", "Place")
将其更改为以下内容:

@Html.ActionLink("Details", "Place", new { id = @Model.Id })

因此,问题是您的id没有提供给您的详细操作。

请发布您的详细操作并查看!这是我在我的索引页面中的内容,该页面转到详细信息页面:@using Html.BeginFormDetails,Place,FormMethod.Post{请选择一个位置:@Html.DropDownListid,SelectListViewBag.placeDDL,choose…}如果要导航,为什么要发布表单。将代码更改为超链接或处理onchange javascript事件以导航到特定页面。这样,您也可以使用url访问该详细信息页面。因为详细信息页面显示从下拉列表中选择的所选地点的地址等,所以作为链接比作为下拉列表更好吗?好的,所以我尝试使用actionlink,它确实转到url中的/1,但现在地图没有显示。这是我使用的@Html.ActionLinkDetails,Details,new{id=item.placeID}