小编Gui*_*nge的帖子

true而不是True(C#)

目标

返回true而不是True从Controller 返回View.

问题

我将一个布尔值存储到变量中,该布尔值指示产品是否存在于购物车/摘要中.

要实现这一点,我正在做以下事情:

[...]
IsAdded = sessionStore.CheckExistanceOnSummary(product.productId)
[...]
Run Code Online (Sandbox Code Playgroud)

但是,当我IsAdded在View上显示其值时,返回的是TrueFalse- 而JavaScript正在期待truefalse.

我需要的是发送truefalse代替C#发送的这种方式.

我已经尝试过的

我已经尝试为此更改上面的代码片段:

IsAdded = (sessionStore.CheckExistanceOnSummary(product.productId) ? 
    "true" : 
    "false")
Run Code Online (Sandbox Code Playgroud)

但调试器返回以下错误:

错误5无法将类型'string'隐式转换为'bool'

几行代码

执行CheckExistanteOnSummary是:

public bool CheckExistanceOnSummary(Nullable<int> productId)
{
    List<Products> productsList = 
        (List<Products>)Session[summarySessionIndex];

    if (productsList.Where
        (product => product.id == (int)productId).FirstOrDefault() == null)
        return false;
    else
        return true;
}
Run Code Online (Sandbox Code Playgroud)

复制?

我读了这个主题,但没有帮助我.

c# asp.net-mvc asp.net-mvc-4

16
推荐指数
1
解决办法
2563
查看次数

从Controller到View的成功消息

目标

我想在添加一些用户时在我的视图中显示一些消息.

问题

当我们的模型出现问题时,有一个方法(ModelState.AddModelError)来处理不成功的消息.但是,当事情顺利的时候,我们怎样才能向用户说出他的行动是否成功?

我发现这个线程提供了解决方案,但大约三年过去了,我需要知道:没有其他方式,也许更成熟?不是这不是,但我们仍然以同样的方式处理成功的信息?

c# asp.net notifications asp.net-mvc-4

14
推荐指数
4
解决办法
2万
查看次数

如何复数单词/字符串?

目标

我想用C#.Net的Razor Engine复数单词.我正在使用MVC 4.

问题

我有以下内容:

<button class="button light-blue filled compare float-right" 
 title="This product is available in @Model["NumberOfMarketsThatHaveThisProduct"]
   market(s)">
   Compare
</button>
Run Code Online (Sandbox Code Playgroud)

我不想使用"市场",而是"市场"或"市场".

我已经尝试过的

<button class="button light-blue filled compare float-right" 
 title="This product is available in @Model["NumberOfMarketsThatHaveThisProduct"]
   @if((int)@Model["NumberOfMarketsThatHaveThisProduct"] == 1)
   {
      @: market
   } else {
      @: markets
   }">
   Compare
</button>
Run Code Online (Sandbox Code Playgroud)

但我觉得这样做并不舒服.

我该怎么办?

c# razor asp.net-mvc-4

7
推荐指数
2
解决办法
2426
查看次数

选择促销价

目标

获得产品的最低价格.

问题

为了说明我的问题:

第1行

  • Product_Id = 1
  • Product_Name ="iPhone 5"
  • Market_Name ="沃尔玛"
  • Product_Original_Price ="359.00"
  • Product_Promotional_Price ="319.00"
  • Product_State = 1(正在提供)

第2行

  • Product_Id = 1
  • Product_Name ="iPhone 5"
  • Market_Name ="Apple"
  • Product_Original_Price ="359.00"
  • Product_Promotional_Price ="0.00"
  • Product_State = 0(不提​​供)

第3行

  • Product_Id = 1
  • Product_Name ="iPhone 5"
  • Market_Name ="BestBuy"
  • Product_Original_Price ="359.00"
  • Product_Promotional_Price ="299.00"
  • Product_State = 1(正在提供)

下一个话题的查询(我有什么)将返回我零如上图所示问题的最优惠的价格-但最好的价格299.00,通过BestBuy,因为在零Product_Promotional_Price意味着该产品是不是要约.

是)我有的

SELECT
  MIN(LEAST(`Product_Original_Price`, `Product_Promotional_Price`)) as `minProductPrice`
[...]
Run Code Online (Sandbox Code Playgroud)

细节

我的查询:

    SELECT  `pr`.`Product_Id` as `productId`,
    `pr`.`Product_Name` as `productName`,
    ROUND(CAST(MIN(`map`.`Product_Original_Price`) AS DECIMAL)/100,2) …
Run Code Online (Sandbox Code Playgroud)

mysql sql stored-procedures

7
推荐指数
1
解决办法
101
查看次数

"@ Script.Render"和"<script>"有什么区别?

我想知道@Scripts.Render("~/something.js")和之间的区别<script type="text/javascript" src="/something.js"></script>.

是的,我已经搜索了这个主题,但没有成功.我认为如果@Scripts.Render存在不是偶然的.

更多细节

我的意思是:当我应该使用其中一个或为什么时.

c# asp.net razor

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

获得其中一个

目标

获取a返回的每个结果之一foreach.

场景

看看下面的Razor代码片段:

@foreach (var product in Model.Collection.Products)
{
    <p>@product.name</p>
}
Run Code Online (Sandbox Code Playgroud)

返回客户端是:

Xbox 360

Xbox 360

Xbox 360

Xbox 360

Playstation 3

Playstation 3

Playstation 3

现在,让我解释一下:我的应用程序比较了不同商店的产品价格.就我而言,四个商店中有Xbox 360,而三个商店中存在Playstation 3 - 这就是他们的名字重复的原因.

我想要的很简单:只需一次填写每个产品的名称来填充HTML的表格栏 - 你们都能理解吗?

哲学

每个产品都在Session上添加.在我们的例子中,会议有两种产品 - 第一种是产品Xbox 360,第二种是产品Playstation 3.所以,正如你所看到的,我可以使用Session来处理这个问题("对于Session上的每个项目,做一些事情......"),但我认为没有必要,因为我总是必须在数据库,按逻辑,它返回我需要的东西.换句话说,除了临时存储用户需要的内容之外,我不需要使用会话.

聚光灯

Model.Collection.Products是类型List<Products>.

我怎么试试?

像这样的东西:

@foreach (var product in Model.Collection.Products.FirstOrDefault())
{
    [...]
}
Run Code Online (Sandbox Code Playgroud)

但是,当然不成功.基本上我需要类似的东西FirstOfEach().

c# asp.net-mvc-4

7
推荐指数
2
解决办法
184
查看次数

Helper在Razor中生成"友好URL"(C#/ MVC 4)

目标

创建一些在Razor中将字符串转换为友好字符串的东西(我正在使用C#/ MVC4)

问题

我有以下代码:

<li>
   <img 
    src="~/Images/Products/@Model["CategoryName"]/@Model["ProductThumbnailUrl"]"
   />
</li>
Run Code Online (Sandbox Code Playgroud)

我的类别的名称是:CDs, DVDs and Bluray我希望连接为"友好字符串",就像cds-dvds-and-blurays使用这样的东西:

<li>
   <img 
    src="~/Images/Products
          /@HtmlHelper.ConvertToFriendlyString(@Model["CategoryName"])
          /@Model["ProductThumbnailUrl"]"
   />
</li>
Run Code Online (Sandbox Code Playgroud)

你们都明白了吗?

那么,有人有任何想法吗?

提前致谢.

c# razor asp.net-mvc-4

6
推荐指数
1
解决办法
2226
查看次数

获取数据绑定元素(使用KnockoutJS)

目标

获取触发函数的元素.

问题

看我的代码:

    <span data-bind="ifnot: ProductLayout.existsAtSummary()">
        <button class="btn btn-success btn-small add"
            title="Adicionar à lista de comparação">
            <i class="icon-plus"></i>
        </button>
    </span>

    <span data-bind="if: ProductLayout.existsAtSummary()">
        <button class="btn btn-danger btn-small remove"
            title="Remover da lista de comparação">
            <i class="icon-remove"></i>
        </button>
    </span>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我触发existsAtSummary()功能时,ififnot是真还是假.

但是这些按钮在foreach中,我需要让它们的元素一起工作,我不知道如何.

我的JS:

function ProductLayoutViewModel() {
    var self = this;

    self.existsAtList = function () {
        return true;
    };
}

ko.applyBindings(new ProductLayoutViewModel());
Run Code Online (Sandbox Code Playgroud)

在JSFiddle上查看我的代码.

我的想法

我在想这个:

self.existsAtList = function (element) {
    console.log(element); // returns me 'undefined'
    return …
Run Code Online (Sandbox Code Playgroud)

javascript jquery knockout.js

6
推荐指数
1
解决办法
1733
查看次数

在MVC视图中显示存储过程的结果(EF 5/MVC 4)

目标

我想在我的视图中显示存储过程的结果.

问题

实体框架为我自动导入了一个执行程序的方法,但是我没有得到我期望在屏幕上显示的结果.

导入的功能是:

public virtual ObjectResult<getProductsListForHome_Result> getProductsListForHome(Nullable<int> inOffer, Nullable<int> categoryId)
{
    var inOfferParameter = inOffer.HasValue ?
        new ObjectParameter("inOffer", inOffer) :
        new ObjectParameter("inOffer", typeof(int));

    var categoryIdParameter = categoryId.HasValue ?
        new ObjectParameter("categoryId", categoryId) :
        new ObjectParameter("categoryId", typeof(int));

    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<getProductsListForHome_Result>("getProductsListForHome", inOfferParameter, categoryIdParameter);
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过了什么

在ProductsController上:

//
// GET: /Products/
public ActionResult Index()
{
    ObjectResult<getProductsListForHome_Result> products = db.getProductsListForHome(1, 14);
    return View(products.ToList());
}
Run Code Online (Sandbox Code Playgroud)

使用前面的代码,当我访问时,http://myapp.com/Products/我收到以下消息:

传递到字典中的模型项的类型为'System.Collections.Generic.List 1[MyApp.Models.getProductsListForHome_Result]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable1 [MyApp.Models.bm_products]'.

我该怎么做才能解决这个问题?

c# mysql stored-procedures entity-framework entity-framework-5

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

根据视图中的预期设置模型

目标

根据期望值更改模型.

问题

我有我的方法ProductsControllerCategory.当有人请求此方法时,可能会发生两件事:如果传递给方法的参数不同Daily-Offers,则会将一种类型的列表传递给View.如果传递给方法的参数等于Daily-Offers,则将另一种类型的列表传递给View.

为了更好地理解,请参阅:

[HttpGet]
public ActionResult Category(string categoryName = null)
{
    int? categoryId = categoryName != "Daily-Offers" ? 
                      Convert.ToInt32(Regex.Match(categoryName, @"\d+").Value) :
                      (int?)null;

    if (categoryName == "Daily-Offers")
    {
        var productsList = Products.BuildOffersList();
        ViewBag.Title = String.Format("Today's deal: ({0})", DateTime.Now);
        ViewBag.CategoryProductsQuantity = productsList.Count;
        ViewBag.CurrentCategory = "Daily-Offers";
        return View(productsList);
    }
    else if (Regex.Match(categoryName, @"\d+").Success && 
             String.Format("{0}-{1}", 
             categoryId, 
             CommodityHelpers.UppercaseFirst
                (CommodityHelpers.GenerateSlug
                     (Categories.GetDetails((sbyte)categoryId).Category_Name))) 
            == categoryName)
    {
        ViewBag.Title = Categories.GetDetails((sbyte)categoryId).Category_Name;
        ViewBag.CategoryProductsQuantity = 
        Categories.GetDetails((sbyte)categoryId).Category_Products_Quantity;
        ViewBag.CurrentCategory = 
           CommodityHelpers.UppercaseFirst(CommodityHelpers.GenerateSlug …
Run Code Online (Sandbox Code Playgroud)

c# razor asp.net-mvc-4

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