小编tjh*_*ack的帖子

使用继承

我目前正在开发一个在一个场景中使用继承的应用程序.但现在我有一个任务,我需要从我的模型构建器返回多个viewmodel.我将在下面描述:

在我的控制器方法中,我们保持了它的轻量级并使用了模型构建器.

public ViewResult Summary(ReportArgs args)
{
    return View<SomeBuilder>(args);
}
Run Code Online (Sandbox Code Playgroud)

然后,它会触发从基类继承的构建器方法.

public class SomeBuilder : NewBuilder<TaskVM, Task> {}
Run Code Online (Sandbox Code Playgroud)

然后NewBuilder具有以下实现:

public class NewBuilder<TModel, TItem> : ReportBuilder where TModel : SomeReportVM<TItem>, new() where TItem : ReportItem
{
    public override ReportVM Build(ReportArgs args)
    {
       /* Some code to get roles here */               
        return new TModel
        {
            FeedbackModel = FeedbackBuilder.Build(inputGrid.Report.Id),

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

我需要做的是从NewBuilder控制器返回一个不同的VM但是很难找到最好的方法来做到这一点?

我在传递TaskVM时无法返回InvalidVM.只是为了让人们意识到这被多个视图用于不同的VM并且实体类会被传入?

.net c# generics asp.net-mvc inheritance

13
推荐指数
1
解决办法
660
查看次数

依赖注入的最佳实践

我正在使用MVC 4在ASP.net中创建一个新项目.

我想使用设置依赖注入Ninject.但在我开始设置依赖注入之前,最好的做法是什么?

目前我在webproject中有一个binder类设置,它将引用解决方案中的数据项目.

binder类如下所示:

 Public static class Binder
{
    static Ninject.IKernel _kernel;

    static Binder()
    {
        _kernel = new Ninject.StandardKernel();

        _kernel.Bind<IConfig>().To<AppSettingsConfig>();
        _kernel.Bind<IDocuments>().To<DocumentsClass.Documents>();

    }

    public static T GetImplementation<T>()
    {
        return _kernel.Get<T>();
    }

}
Run Code Online (Sandbox Code Playgroud)

然后在我的控制器中,我使用GetImplementation方法来使用确切的require依赖项,而不是在应用程序启动时注册所有.

控制器的示例代码:

Public ActionResult Get (int id)
{
    var repository = Binder.GetImplementation<IDocuments>();

    // do some stuff with the repository here
}
Run Code Online (Sandbox Code Playgroud)

不确定这是不是一个好方法?任何建议都会很好.

c# asp.net-mvc dependency-injection ninject asp.net-mvc-4

9
推荐指数
1
解决办法
3343
查看次数

从html页面的node.js中使用Express获取下拉值

我正在使用快速开发一个快速node.js应用程序,我是NODE的新手.对于页面我只是使用普通的HTML.

基本上我有一个表格如下:

 <form id="tableForm" action="getJson">
        <select class="selectpicker" data-style="btn-info" name="selectpicker">
            <optgroup label="Select Table">
              <option name="" value="0">Select table</option>
              <option name="table1" value="1">Table 1</option>
              <option name="table2" value="2">Table 2</option>
              <option name="table3" value="3">Table 3</option>
            </optgroup>
        </select>
    </form>
Run Code Online (Sandbox Code Playgroud)

基本上,我需要在完成后选择值,我需要通过app.get()调用,但我的问题是如何获取值并调用API?

var express = require('express'),
app = express();

app.use(express.bodyParser());
 // as only one page can use res.sendfile to render the page which will 
 // contain the dropdowns ...
 app.get('/', function(req, res){
  res.sendfile('views/index.html');
});

app.get('/getJson', function (req, res) {
   console.log(req.body.);
});

app.listen(process.env.PORT);
Run Code Online (Sandbox Code Playgroud)

所以我需要调用getJson()传入的值.

干杯!

node.js express

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

使用bcrypt-node时未显示回调错误

我已经创建了一个名为的节点库文件encrypt.js.

其中包括使用bcrypt-nodejs创建的一些函数

var bcrypt = require('bcrypt-nodejs');

exports.cryptPassword = function(password, callback) {
    bcrypt.genSalt(10, function(err, salt) {
        if (err) return callback(err);
        else {
            bcrypt.hash(password, salt, function(err, hash) {
                return callback(err, hash);
            });
        }
    });
};

exports.comparePassword = function(password, userPassword, callback) {
    bcrypt.compare(password, userPassword, function(err, isPasswordMatch) {
        if (err) return callback(err);
        else return callback(null, isPasswordMatch);
    });
};
Run Code Online (Sandbox Code Playgroud)

当我现在cryptPassword从我的server.js文件中使用时,它显示来自bcrypt-nodejs库的错误说明' no callback function was given'

我在我的通话中添加了一个功能,如下所示

var encryptedPassword =  encrypt.cryptPassword(req.body.user.password, function (err, salt){
    if(err) {throw err}; …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

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

在MVC应用程序中使用jquery和ajax和json

我正在开发一个MVC应用程序(使用MVC 4 beta).

我希望我的网站能够像谷歌应用程序一样响应,立即显示没有页面刷新显示和快速的数据.

我正在寻找一个很好的例子,使用来自jquery的jjax调用和使用json发送数据将数据保存到数据库.

任何相关的例子都可以很好地解决它

谢谢

asp.net-mvc jquery asp.net-mvc-4

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

Mongodb 链接集合

我已经创建了一个 mongodb 数据库。我有一份被分配工作的客户名单。

我正在尝试确定仅将客户信息存储在工作文档中是否就足够了。我唯一的问题是我需要有一个中心点来存储客户信息,然后在作业文档中我可以有一个名为 client{_id: 'clientname'} 的对象

这样做就足够了吗?

我问的唯一原因是因为如果需要更新客户详细信息(例如地址),那么这将立即反映出来。如果我存储了包含名称地址等的整个 cleint 对象,那么如果他们更改了地址,那么这些更改将不会得到反映。

干杯

mongodb

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

永远不会分配Javascript变量

我有以下javascript但由于某种原因我的var响应总是设置为默认值false,即使结果为true

var response = false;

connection.query('SELECT * FROM Something WHERE something = ?', [req.body.something], function(err, results)
{
    if (results.length == 0)
    {
        response == false;
    }
    else
    {
        hashedPassword = results[0].password;

        var comparePassword = encrypt.comparePassword(req.body.user.password, hashedPassword, function(err,result)
            {
                if (err) {throw error;}
                response == result;
                console.log("res=" + response);
                console.log('here ' + result);
                res.send(result);
            }
        );

    }

    console.log("response " + response);
});
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript node.js

0
推荐指数
1
解决办法
50
查看次数