我一直在使用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) 我一直收到这个错误(来自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
谢谢!
我正努力在我的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) 我目前正在阅读一本书中的教程,并指示使用Visual JavaServer Faces框架创建Java Web App.书中的屏幕截图显示了JavaServer Faces框架和额外的Visual JavaServer Faces框架.我似乎无法在netbeans插件页面中找到插件/下载,或者当我谷歌它时.此功能已被删除吗?
此外本教程说明这个截图:
是否已将这两个框架集成到一个框架中?如果是这样,我该如何访问此设计屏幕?
谢谢
是的,我在同一主题上有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)
任何帮助,将不胜感激!
我想知道如何创建一个可重用的方法,根据方法参数创建选择列表?我在想下面的事情:
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) 我已经阅读了各种来源,但我不确定如何将它们应用到我的代码中.我想知道是否有人能给我一个快速的手?一旦我被告知如何在我的代码中执行一次,我想能够接受它我认为!这是我在网上找到的一个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)