小编Nul*_*y7e的帖子

有没有办法用WebAPI生成Urls?

张贴在下面

我们无法弄清楚为什么UrlHelper在从WebApi控制器的上下文中使用时返回空字符串.

我们已经完成了必要的调试,但我们无法找到为什么会发生这种情况,RouteData中有路由,但它似乎没有工作.

在大多数情况下,我们使用RenderViewToString函数,该函数加载由调用组成的视图Url.RouteUrl(routeName).

已经尝试过的东西是创建自定义UrlHelper(但无济于事)并使用UrlHelper(MVC/HTTP)进行调试.

属性路由随处使用路由名称.

用法代码示例:

    public class WebApiController : BaseApiController
    {
        [HttpPost]
        [ResponseType(typeof(string))]
        [Route("cart/get/checkout", Name = "api.cart.get.checkout")]
        public IHttpActionResult GetCheckOutShoppingCart([FromBody] string data)
        {
               return Ok(RenderViewToString("CartController", "_CheckOutCartPartial", new ShoppingCartModel(Auth.IsAuthenticated ? Auth.GetCustomer().DefaultShippingInfo.CountryId : 148)
               {
                   AddInsurance = false,
                   InsuredShipping = insuredShipping,
                   CurrentDeliveryMethodId = deliveryMethodId,
                   CurrentPaymentMethodId = paymentMethodId
               }));
        }
   }
Run Code Online (Sandbox Code Playgroud)

BaseApiController类:

 public class BaseApiController : ApiController
    {
        public static string RenderViewToString(string controllerName, string viewName)
        {
            return RenderViewToString(controllerName, viewName, new Dictionary<string, object>());
        }

        public static string RenderViewToString(string …
Run Code Online (Sandbox Code Playgroud)

c# model-view-controller asp.net-mvc asp.net-web-api

5
推荐指数
1
解决办法
2150
查看次数

2个DIV在没有Float的情况下彼此相邻

DIV#1的内容是图像,DIV#2的内容是输入文本字段.

#1 {
  width: 48px;
  height: 48px;
}

#2 {
  height: 48px;
}
Run Code Online (Sandbox Code Playgroud)

我不想使用浮动,因为#1的图像在缩放页面时打破了布局.我尝试了一个表,但后来我无法设置边距和填充.还试过显示:内联块然后我也不能使用填充/边距.

我在整个页面上使用%sizing,但填充除外,所以它都适用于缩放和不同的分辨率.

css

3
推荐指数
1
解决办法
7208
查看次数

通过自定义 taghelper 渲染局部视图

我到处搜索,我想要的基本上是MVC6的RenderViewToString,它不使用控制器或动作的上下文。

由于自定义 TagHelper 进入它们自己的类,因此这些上下文将不可用。

目前我有以下代码,我非常想将 html 放在 Razor 视图中,因为这是不可接受的,哈哈。

public class WindowTagHelper : TagHelper
{
    public string Title { get; set; }
    public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
    {
        var preContent = await output.GetChildContentAsync();      
        var id = context.UniqueId;
        output.TagName = "div";
        output.Attributes["id"] = id;
        output.Attributes["class"] = "window";
        output.TagMode = TagMode.StartTagAndEndTag;

        var windowControls = new StringBuilder();
        windowControls.Append("<div class=\"window-controls\">");
        windowControls.Append("<ul class=\"window-icon-list\">");  

        var minimizeIcon = "<li class=\"control-icon\"><a data-window-id=\"{0}\" class=\"control-icon-minimize\" href=\"#\" data-toggle=\"tooltip\" title=\"Minimize Window\"><div class=\"fa fa-minus\"></div></a></li>".InjectWith(id);
        var maximizeIcon = "<li class=\"control-icon\"><a data-window-id=\"{0}\" …
Run Code Online (Sandbox Code Playgroud)

c# razor asp.net-core-mvc asp.net-core

2
推荐指数
1
解决办法
2375
查看次数