0

私はsitemap.configを書いています。

        <siteMapNode title="Shipping rate" nopResource="Admin.Configuration.Shipping.Rate" controller="Shipping" action="ConfigureProvider?systemName=Shipping.ByWeight"   />           


      </siteMapNode>

これは、呼び出したい配送コントローラー関数です。

public ActionResult ConfigureProvider(string systemName)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings))
                return AccessDeniedView();

            var srcm = _shippingService.LoadShippingRateComputationMethodBySystemName(systemName);
            if (srcm == null)
                //No shipping rate computation method found with the specified id
                return RedirectToAction("Providers");

            var model = srcm.ToModel();
            string actionName, controllerName;
            RouteValueDictionary routeValues;
            srcm.GetConfigurationRoute(out actionName, out controllerName, out routeValues);
            model.ConfigurationActionName = actionName;
            model.ConfigurationControllerName = controllerName;
            model.ConfigurationRouteValues = routeValues;
            return View(model);
        }

しかし、エラーがあります" A potentially dangerous Request.Path value was detected from the client (?) "

どうすればそれを愛することができますか。

4

1 に答える 1

1

NOPCommerceのsiteMap.cofigを介してアクションにパラメーターを渡すことはできません 。これは、 siteMapNodeのAction属性にパラメーターを指定してアクション名を書き込むと、それがアクション名であると見なされるためです。したがって、パラメータを使用してアクションを呼び出したい場合は、そのアクションの新しいアクションを作成し、そこからリダイレクトします。

//In Site Map 

    <siteMapNode title="Shipping rate" nopResource="Admin.Configuration.Shipping.Rate" controller="Shipping" action="SomeAction"/> 


//In Shipping Controller 


    public ActionResult SomeAction()
    {
         return RedirectToAction("ConfigureProvider", new { systemName = "Shipping.ByWeight" });
    }


    public ActionResult ConfigureProvider(string systemName)
    {

    }

このようにして、アクションを呼び出すことができます。

于 2012-10-03T05:42:31.957 に答える