小编Kia*_*ada的帖子

如何将对象传递给VIewModel的构造函数?ASP.NET MVC 3,Ninject

我一直在使用Bob Cravens博客中描述的存储库模式来创建我的应用程序,但我有点新,并且仍在寻找解决方案.我想将我的DataService对象注入到我的ViewModel的构造函数中,这样我就可以创建一个SelectList对象,并在我的视图中创建一个下拉框.但是我似乎无法使绑定工作,每次我创建ViewModel它都会查找/执行无参数构造函数!我已尝试过各种方式在这里使用答案,但无济于事.非常感谢帮助.

视图模型:

public class ServerCreateViewModel
{
    public SelectList Companies { get; private set; }

    public ServerCreateViewModel()
    {

    }

    public ServerCreateViewModel(DataService _dataService)
    {

        Companies = new SelectList(_dataService.Companies.All(), "Id", "CompanyName");

    }
Run Code Online (Sandbox Code Playgroud)

Ninject模块:

        Bind<DataService>().ToSelf()
            .InRequestScope();

        var _dataService = Kernel.Get<DataService>();

        Bind<ServerCreateViewModel>()
            .ToSelf()
            .WithConstructorArgument("_dataService", _dataService);

        //Bind<ServerCreateViewModel>()
        //    .ToSelf()
        //    .WithConstructorArgument("_dataService", ctx => ctx.Kernel.Get<DataService>());
Run Code Online (Sandbox Code Playgroud)

控制器:

    public ActionResult Create(ServerCreateViewModel viewModel)
    {

        return View(viewModel);
    } 
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc ninject viewmodel

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

如何让MongoDB使用php 5.3.5&wamp?

我一直收到这个错误(来自apache日志),我不能让php_mongo.dll模块加载32位版本的mongo和wamp.

PHP Warning:  PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.3.5/ext/php_mongo.dll' - The specified module could not be found.\r\n in Unknown on line 0
<br />
<b>Warning</b>:  PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.3.5/ext/php_mongo.dll' - The specified module could not be found.
in <b>Unknown</b> on line <b>0</b><br />
Run Code Online (Sandbox Code Playgroud)

最令人沮丧的是,我可以看到文件位于确切的目录中,错误消息告诉我它无法找到它!我已经重新检查了php.ini编辑是否正确,但是当php启动时我仍然无法加载模块.任何想法'0在第0行的未知'可能对应?

php 5.3.5 apache 2.2.17 windows 7

谢谢!

php apache wamp mongodb

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

为什么我的ViewModel在[HttpPost]上为空?.NET MVC 3

我正努力在我的Web应用程序中正确使用ViewModels,但我遇到了各种各样的问题.其中之一是,如果我在使用Create操作发布后立即设置断点,则我的viewModel没有存储任何表单值.我一定做错了什么,但我尝试了一些事情.包括下面的代码,我将表单项命名为与viewModel字段相同,以查看是否有帮助.

我也想知道你的viewmodel中应该代表什么属性.我见过人们在博文中使用不同的东西和诸如此类的东西.

如果视图将呈现一个选择列表,那么我认为viewmodel应该为此保存一个IEnumerable SelectListItem,如下所示.然而,我看到人们使用IEnumerable Entity来表示选择列表所代表的类型.

任何人都可以为我阐明这一点吗?我昨晚取消了整个业务逻辑,所以我可以重新开始尝试并正确地完成它.

我的ViewModel:

public class ServerCreateViewModel
{
    public int Id { get; set; }

    // CompanyName represents a field in the Company model. I did this to see if
    // it would help with model binding. Beforehand it was Companies to represent the type. I've done the same for the rest of them, so I wont comment on this again.
    public IEnumerable<SelectListItem> CompanyName { get; set; }

    // Represents the Game model.
    public IEnumerable<SelectListItem> GameTitle { …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor asp.net-mvc-viewmodel

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

Netbeans上JavaServer Faces的Visual Web Editor在哪里?

我目前正在阅读一本书中的教程,并指示使用Visual JavaServer Faces框架创建Java Web App.书中的屏幕截图显示了JavaServer Faces框架额外的Visual JavaServer Faces框架.我似乎无法在netbeans插件页面中找到插件/下载,或者当我谷歌它时.此功能已被删除吗?

此外本教程说明这个截图:

在此输入图像描述

是否已将这两个框架集成到一个框架中?如果是这样,我该如何访问此设计屏幕?

谢谢

java jsf netbeans visual-editor

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

如何使用JQuery从JSON对象创建此选择列表?

是的,我在同一主题上有3个或4个不同的答案,但我正在努力将它们结合起来创造我需要的东西.我使用Json.Net序列化我的结果,结果产生以下对象:

"[  { "Id": 1, "OrderInList": 1  },
    { "Id": 2, "OrderInList": 2  },
    { "Id": 4, "OrderInList": 3  }
]"
Run Code Online (Sandbox Code Playgroud)

我希望选项值文本是OrderInList值(我稍后会使用其他ID).

我目前有以下代码,但它创建了143个选项框.我可以看到它为什么这样做,但我不知道如何改变它以使其发挥作用.

    $.getJSON("/Json/GetOrderSelectList?parentCategoryId=" + postData, null, function (jsonResult) {
        $('#orderInList').attr('enabled', 'true');
        $.each(jsonResult, function() {
            $.each(this, function(index, item) {
                                $('#orderInList').append(
                                    $("<option></option>")
                                        .text(index)
                                        .val(index)
                                );

            });
        });
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

javascript ajax jquery json

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

创建类型为T的通用选择列表生成方法

我想知道如何创建一个可重用的方法,根据方法参数创建选择列表?我在想下面的事情:

public IEnumerable<SelectListItem> CreateSelectList(IList<T> entities, T value, T text)
{

   return  entities
           .Select(x => new SelectListItem
                           {
                               Value = x.value.ToString(),
                               Text = x.text.ToString()
                           });
}
Run Code Online (Sandbox Code Playgroud)

我想我有点倒退了.我不确定如何调用这样的方法,当我用类别的IList为第一个参数调用它时,编译器抱怨它不能将类型类型分配给类型T?另外,我如何将方法参数插入lambda?任何帮助赞赏!

代码我试图用来调用它(这是错误的,但你明白了)

viewModel.Categories = _formServices.CreateSelectList(categories, Id, Name);
Run Code Online (Sandbox Code Playgroud)

代码我试图使更通用和可重用:

viewModel.Categories = categories
                      .Select(x => new SelectListItem
                     {
                         Value = x.Id.ToString(),
                         Text = x.Name
                      });
Run Code Online (Sandbox Code Playgroud)

编辑答案

感谢@Pavel Backshy的工作回答.我想编辑一个扩展,我做了他的回答,以防它帮助任何人!扩展只是在混合中添加.Where子句:

    public IEnumerable<SelectListItem> CreateSelectListWhere<T>(IList<T> entities, Func<T, bool> whereClause, Func<T, object> funcToGetValue, Func<T, object> funcToGetText)
    {
        return entities
               .Where(whereClause)
               .Select(x => new SelectListItem
                {
                    Value = funcToGetValue(x).ToString(),
                    Text = funcToGetText(x).ToString()
                }); …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc-3

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

如何从SQL注入中保护此代码?有点困惑

我已经阅读了各种来源,但我不确定如何将它们应用到我的代码中.我想知道是否有人能给我一个快速的手?一旦我被告知如何在我的代码中执行一次,我想能够接受它我认为!这是我在网上找到的一个AJAX自动完成,虽然我看到由于'%$ queryString%'或其他原因它容易受到SQL注入的影响?任何帮助真的很感激!

if ( isset( $_POST['queryString'] ) )
{
  $queryString = $_POST['queryString'];
  if ( strlen( $queryString ) > 0 )
  {
    $query = "SELECT game_title, game_id FROM games WHERE game_title LIKE '%$queryString%' || alt LIKE '%$queryString%' LIMIT 10";
    $result = mysql_query( $query, $db ) or die( "There is an error in database please contact support@laglessfrag.com" );
    while ( $row = mysql_fetch_array( $result ) )
    {
      $game_id = $row['game_id'];
      echo '<li onClick="fill(\'' . $row['game_title'] . '\',' . $game_id . ');">' . …
Run Code Online (Sandbox Code Playgroud)

php mysql sql ajax code-injection

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