问题列表 - 第46987页

在Asp.Net MVC 3应用程序中收集复杂的子对象?

我希望能够在同一视图中更新模型及其所有子对象集合.我已经参考了这些例子:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspxhttp://blog.stevensanderson.com/2010/01/ 28/editing-a-variable-length-list-aspnet-mvc-2-style /.

例如,我有一个对象顾问,它有一个"WorkExperiences"的集合.所有这些都在实体框架模型中.在视图中,Consultant对象的简单属性没有问题,但是我无法获得要显示的文本框的集合.我尝试按照上面的链接中的示例,但它不起作用.问题是,在这些示例中,模型只是一个列表(不是具有子列表属性的对象).而且,该模型再次是EF模型.由于某种原因,似乎在这些例子中不起作用.

为了简单起见,我尝试按照Phil Haacks的例子做一些事情,然后让View显示文本框:

@for (int i = 0; i < Model.WorkExperiences.Count; i++)
{
    Html.TextBoxFor(m => m.WorkExperiences[i].Name);
}
Run Code Online (Sandbox Code Playgroud)

我试图在控制器中为ViewModel创建一个新的WorkExperience对象:

    public ActionResult Create(int id)
    {
        Consultant consultant = _repository.GetConsultant(id);
        DetailsViewModel vm = new DetailsViewModel();
        vm.WorkExperiences = consultant.WorkExperiences.ToList();
        vm.WorkExperiences.Add(new WorkExperience());           
        return View(vm);
    }
Run Code Online (Sandbox Code Playgroud)

但View不显示WorkExperience Name属性的任何空文本框.另一方面,我创建一个单独的View只是为了添加一个新的WorkExperience对象,传递一个新的空WorkExperience对象作为模型,这很好:

@Html.EditorFor(model => model.Name)
Run Code Online (Sandbox Code Playgroud)

这给了我一个空文本框,我可以保存新对象.但是为什么我不能在与Consultant对象相同的视图中执行此操作,根据上面链接中的示例使用集合?

顺便说一句,这是对早期问题的一个后续问题,它向我指出了上述链接,但我从来没有找到它的最终解决方案.如果需要更多信息,请查看该问题:在MVC 3应用程序的模型中为对象属性创建视图?

更新:

根据下面的答案和评论,这里是View和EditorTemplate的更新:

风景:

@model Consultants.ViewModels.DetailsViewModel

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Add work experience", "CreateWorkExperience", new { id = ViewBag.Consultant.Id }) …
Run Code Online (Sandbox Code Playgroud)

asp.net collections entity entity-framework asp.net-mvc-3

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

Magento - 如何将可配置产品图像链接到简单产品图像?

情况就是这样:

我有一个可配置的产品,有几个简单的产品.这些简单的产品需要与可配置产品具有相同的产品图像.目前,我必须一遍又一遍地将相同的图像上传到每个简单的产品.

有没有办法将可配置产品的产品图像链接到简单的产品?

我的一些产品在一个可配置的产品中有30个简单的产品,上传相同的图像30次是太过分/烦人.

我希望有人可以帮我解决这个问题!

提前致谢!

php product image configurable magento

10
推荐指数
1
解决办法
9732
查看次数

Servlet 3规范和ThreadLocal

据我所知,Servlet 3规范引入了异步处理功能.除此之外,这意味着可以并且将重用相同的线程来处理另一个并发的HTTP请求.这不是革命性的,至少对于之前与NIO合作的人来说至少是这样.

无论如何,这导致另一个重要的事情:没有ThreadLocal变量作为请求数据的临时存储.因为如果同一个线程突然成为另一个HTTP请求的运营商线程,请求本地数据将暴露给另一个请求.

所有这些都是基于阅读文章的纯粹推测,我没有时间玩任何Servlet 3实现(Tomcat 7,GlassFish 3.0.X等).

所以,问题:

  • 我是否正确地认为ThreadLocal将不再是一个方便的黑客来保存请求数据?
  • 有没有人玩过任何Servlet 3实现并尝试使用ThreadLocals来证明上述内容?
  • 除了在HTTP Session中存储数据之外,还有其他类似的易于访问的黑客你可能会建议吗?

编辑:别误会我的意思.我完全理解危险并ThreadLocal成为黑客.事实上,我总是建议不要在类似的环境中使用它.但是,不管你信不信,线程上下文的使用频率比你想象的要频繁得多.一个很好的例子是Spring的OpenSessionInViewFilter,根据它的Javadoc:

此过滤器通过当前线程使Hibernate会话可用,该线程将由事务管理器自动检测.

这不是严格的ThreadLocal(没有检查来源),但已经听起来令人震惊.我可以想到更多类似的场景,而且丰富的Web框架使得这种情况更有可能发生.

简而言之,许多人在这个黑客的基础上建造了他们的沙堡,无论是否有意识.因此,斯蒂芬的答案是可以理解的,但并不完全是我所追求的.我想得到一个确认是否有人真正尝试能够重现失败的行为,所以这个问题可以作为被同一问题困扰的其他人的参考点.

java multithreading servlets thread-local servlet-3.0

27
推荐指数
2
解决办法
6618
查看次数

按字符串数组拆分字符串并保留分隔符

我有这样的事情:

  string[] names= {"john","joe", "jim"};
  data="john,4,3,6,joe,3,6,2,jim,3,6,7";
  string[] results=data.Split(names,StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)

这给了:

 ,4,3,6

 ,3,6,2

 ,3,6,7
Run Code Online (Sandbox Code Playgroud)

但我希望名称也在结果数组中.

c# string

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

从lambda分配给Python列表的切片

我知道各种对象的某些"特殊"方法表示通常用运算符执行的操作(即int.__add__+,object.__eq__for ==等),其中一个是list.__setitem,它可以为一个值赋值列表元素.但是,我需要一个可以将列表分配到另一个列表的切片的函数.

基本上,我正在寻找相当于的表达式some_list[2:4] = [2, 3].

python lambda list variable-assignment

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

如何在PHP中将所有图像转换为JPG格式?

我正在开发一个PHP网站,让用户上传图像然后让他决定图像应该如何使用jQuery - PHP整合来选择想要成为图片的区域,然后单击裁剪按钮来裁剪它和保存.

我面临的问题是,并非所有图像类型都能很好地裁剪和保存,所以我注意到它可以很容易地将图像转换为JPG,然后让用户裁剪它,因为它是一种简单的方法. JPG格式.

我怎么能这样做?

这是图像类型问题的最佳解决方案吗?

编辑:

我正在使用此代码裁剪图像,它不是以PNG格式拍摄,也仅限于3分机.

$path_parts = pathinfo("../images/DVDs/".$_POST['logo_file']);
        if ($path_parts['extension'] == "png") {

                $src = imagecreatefrompng("../images/DVDs/".$_POST['logo_file']);

                        $tmp = imagecreatetruecolor(350, 494);
                        imagecopyresampled($tmp, $src, 0,0,$_POST['x'],$_POST['y'],350,494,$_POST['w'],$_POST['h']);
                        imagepng($tmp, "../images/DVDs/$filename".'t_'.$_POST['logo_file'],100);
            } else if ($path_parts['extension'] == "jpg" || $path_parts['extension'] == "jpeg") {

                        $src = imagecreatefromjpeg("../images/DVDs/".$_POST['logo_file']);

                        $tmp = imagecreatetruecolor(350, 494);
                        imagecopyresampled($tmp, $src, 0,0,$_POST['x'],$_POST['y'],350,494,$_POST['w'],$_POST['h']);
                        imagejpeg($tmp, "../images/DVDs/$filename".'t_'.$_POST['logo_file'],100);
                } else if ($path_parts['extension'] == "gif") {

                        $src = imagecreatefromgif("../images/DVDs/".$_POST['logo_file']);

                        $tmp = imagecreatetruecolor(350, 494);
                        imagecopyresampled($tmp, $src, 0,0,$_POST['x'],$_POST['y'],350,494,$_POST['w'],$_POST['h']);
                        imagegif($tmp, "../images/DVDs/$filename".'t_'.$_POST['logo_file'],100);
                    }
Run Code Online (Sandbox Code Playgroud)

我想将图像转换为JPG格式,因为它最容易转换而没有任何问题.

php image crop

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

E2251不明确的重载呼叫

我继承了一些目前使用C++ Builder 2007编译的Delphi组件/代码.我现在只是尝试使用C++ Builder RAD XE编译组件.我不知道Delphi(对象pascal).

以下是似乎存在冲突的"支持"功能的版本.是否有可用于使RAD XE向后兼容的编译器开关?或者我可以对这些函数调用做些什么来纠正模糊性质?

我得到的错误是:

[DCC Error] cxClasses.pas(566): E2251 Ambiguous overloaded call to 'Supports'
  SysUtils.pas(19662): Related method: function Supports(const TObject; const TGUID; out): Boolean;
  cxClasses.pas(467): Related method: function Supports(TObject; const TGUID; out): Boolean;



{$IFNDEF DELPHI5}

procedure FreeAndNil(var Obj);
var
  Temp: TObject;
begin
  Temp := TObject(Obj);
  Pointer(Obj) := nil;
  Temp.Free;
end;

function Supports(const Instance: IUnknown; const Intf: TGUID; out Inst): Boolean; overload;
begin
  Result := (Instance <> nil) and (Instance.QueryInterface(Intf, Inst) = 0);
end;


function Supports(Instance: TObject; …
Run Code Online (Sandbox Code Playgroud)

delphi ambiguous-call

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

在R中向量化rep和seq

我想完成两件事.首先,如果我有一个向量,1:5我想得到一个矩阵(或两个向量),表示这些元素的唯一组合,包括两倍相同的数字,但不包括重复.

现在我可以使用矩阵来做到这一点:

foo <- matrix(1:5,5,5)
cbind(foo[upper.tri(foo,diag=TRUE)],foo[lower.tri(foo,diag=TRUE)])
      [,1] [,2]
 [1,]    1    1
 [2,]    1    2
 [3,]    2    3
 [4,]    1    4
 [5,]    2    5
 [6,]    3    2
 [7,]    1    3
 [8,]    2    4
 [9,]    3    5
[10,]    4    3
[11,]    1    4
[12,]    2    5
[13,]    3    4
[14,]    4    5
[15,]    5    5
Run Code Online (Sandbox Code Playgroud)

但必须有一个更简单的方法.我试图用Vectorizeseq,但是这给了我一个错误:

cbind(Vectorize(seq,"from")(1:5,5),Vectorize(seq,"to")(5,1:5))
    Error in Vectorize(seq, "from") : 
      must specify formal argument names to vectorize
Run Code Online (Sandbox Code Playgroud)

我要做的第二件事是如果我有一个包含向量的列表bar,以获得一个包含重复列表元素的向量,该向量等于该元素中元素的数量.我可以这样做:

unlist(apply(rbind(1:length(bar),sapply(bar,length)),2,function(x)rep(x[1],x[2])))
 [1] 1 1 …
Run Code Online (Sandbox Code Playgroud)

r vectorization seq

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

使ScaleTransform从Center而不是左上角开始

我有一个按钮的样式,当鼠标悬停时它应该增长到1.5倍.问题是Button从左上角而不是中心增长.有谁知道如何解决这一问题?

<Style x:Key="sizeButton" TargetType="Button">
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="RenderTransform">
                <Setter.Value>
                    <ScaleTransform ScaleX="1.5" ScaleY="1.5"/>
                </Setter.Value>
            </Setter>
        </Trigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

尝试过Henk Holterman提供的解决方案,但我无法使用以下代码.它似乎没有效果或我做错了吗?

<Window.Resources>
    <Style x:Key="sizeButton" TargetType="Button">
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="RenderTransform">
                    <Setter.Value>
                        <ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.5" ScaleY="1.5"/>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<StackPanel>
    <Button Content="Increase Size" Width="100" Height="50" Style="{StaticResource sizeButton}"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

.net c# wpf xaml button

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

几乎pod数据的reinterpret_cast(布局兼容性足够)

我正在努力学习static_castreinterpret_cast.

如果我是正确的,标准(9.2.18)说reinterpret_castpod数据是安全的:

指向POD结构对象的指针(适当地使用a转换) reinterpret_cast指向其初始成员(或者如果该成员是位字段,则指向它所驻留的单元),反之亦然.[注意:因此,在POD-struct对象中可能存在未命名的填充,但不是在其开头,以实现适当的对齐. - 结束说明]

我的问题是如何严格解释这一点.例如,布局兼容性足够吗?如果没有,为什么不呢?

对我来说,以下示例显示了严格的"仅POD有效"解释似乎是错误的示例.

class complex_base  // a POD-class (I believe)
{
public:  
  double m_data[2];
};

class complex : public complex_base
{  //Not a POD-class (due to constructor and inheritance)
public:
  complex(const double real, const double imag); 
}

double* d = new double[4];
//I believe the following are valid because complex_base is POD
complex_base& cb1 = reinterpret_cast<complex_base&>(d[0]);  
complex_base& cb2 = reinterpret_cast<complex_base&>(d[2]);
//Does the following complete a valid cast …
Run Code Online (Sandbox Code Playgroud)

c++ static-cast reinterpret-cast

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