场景
路线:/ template/customize/10其中:10 =模板的ID()
在控制器中,模型是基于模板创建的,因此View的模型实际上是一个Customization()对象,实际上Id为0,因为它是新的.
在视图中我渲染@ Html.HiddenFor(m => m.Id)并且隐藏输入的结果值是10,尽管它应该是0,因为m是Customization类型.我之前使用MVC 2遇到过这种情况,并且通过不使用辅助方法解决了这个问题.
问题
是否有注释或我可以添加到Html Helper方法以实际呈现正确的值?
这是一个错误(MVC似乎将m.Id渲染为路径值,而不管控制器中实际模型的设置是什么)?
附加代码澄清
视图
@model Project.Core.Domain.Customization
@using( Html.BeginForm( "save", "customization" ) )
{
@Html.HiddenFor( m => m.Id )
@Html.HiddenFor( m => m.Template.Id )
<button type="submit" id="save" name="save">Save</button>
}
Run Code Online (Sandbox Code Playgroud)
调节器
public ActionResult Customize( int id )
{
var template = Persistence.Data.RetrieveObject<Template>( id );
var model = new Customization();
ViewBag.Template = template;
return ( View( model ) );
}
Run Code Online (Sandbox Code Playgroud)
解
将Action的签名更改为:
public ActionResult Customize( int TemplateId …Run Code Online (Sandbox Code Playgroud) 我正在使用最新版本的iTextSharp:http://sourceforge.net/projects/itextsharp/
我在使用GetFieldPositions(fieldName)获取某些AcroField的位置后尝试使用ColumnText.SetSimpleColumn.
我可以找到的所有示例都显示GetFieldPositions返回一个float []但是这似乎不再是这种情况了.它现在似乎是返回IList,它没有(根据Visual Studio)隐式转换为float [].
在0索引处的返回值内部是一个位置成员,它是一个Rectangle,但由于我见过的示例对返回的float []执行数学运算,我不确定GetFieldPostions中返回值的值是什么时候使用的使用SetSimpleColumn.这是我正在引用的一篇文章:http://blog.dmbcllc.com/2009/07/08/itextsharp-html-to-pdf-positioning-text/
最简单的接受答案是如何将值从GetFieldPositions转换为SetSimpleColumn.
谢谢!