asp.net MVC中的方法可以写在前台页面吗?附解决方案

事情是这样的,因为好久没用MVC了,而且对它又是初学,所以很纠结。遇到这样一个问题:需要实现的是,如果数据库没有图片地址,显示默认图片,如果有则显示。起初的疑问是,主要看那个getUrl()方法,在asp.net MVC里怎么不能这么写?报错呢?(PS:其实思路本身就是错的,深受以前学习asp.net的迫害有么有晕。。。见代码:

 @{ public static string getUrl(string Url)//处理url

                   {

                       if (string.IsNullOrEmpty(Url))

	                 {

                           return "/uploads/noproduct.png";



	                 }                     

                       return Url;

                   }



        }
<div class="c-prolistbox">

                    <ul>

                        @foreach (var item in (List<ProductService.Model.ProductModel>)ViewBag.modelList)

                        {

                            <li>

                                <div class="lproot">

                                    <div class="photoimgcc">

                                        <a href="@Url.Content("~/Show/Detail?id")=@item.Id" target="_blank">

                                            <img src="@getUrl(item.Url)" width="220" height="220" /></a>

                                    </div>

                                    <div class="show-item-meta">

                                        <div class="prlist-price"><em>¥</em>@((Convert.ToDouble(item.Price) / 100).ToString("0.00"))</div>

                                    </div>

                                    <div class="show-item-info">@item.Name</div>

                                </div>

                            </li>

                        }

                    </ul>

                    <div class="clear"></div>

                </div>

这样子理论上应该是正确的,为何运行的时候会报错呢。好吧,本人没有得到MVC Razor真正的奥妙。因为我从来不知道它还有@helper语法。冷汗

废话不多说,解决方法很简单,见代码。

  @helper getUrl(string Url)

{//处理url

    if (string.IsNullOrEmpty(Url))

    {

        @( "/uploads/noproduct.png");



    }

    else

    {

        @(Url);

    }

 }

是不是觉得代码和刚开始写的代码相似?对-,就是因为你不懂Razor视图引擎的语法,下一步看来我该整理一下了。。

如果有同样不懂的@helper是何物的请默默打开此扫盲文抠鼻http://ashui.net/go/asp-net-mvc-helper

原文链接:,转发请注明来源!
阿里云服务器

发表评论

  • 1 Responses to “asp.net MVC中的方法可以写在前台页面吗?附解决方案”
    • Le Bon Coin Sac A Main Longchamp

      I lately came across your web web site and have been reading along. I thought I would leave my very 1st comment. Nice blog. I will keep visiting this website really regularly.

      回复