0
控制器操作對於應用我的工作,我已經得到了一個查看下面的剃刀代碼我的工作:參數沒有被正確地傳遞到從視圖
@Html.InputFor(m => m.Property1); // A date
@Html.InputFor(m => m.Property2); // Some other date
@Html.InputFor(m => m.SomeOtherProperty); // Something else.
<a href='#' id='some-button'>Button Text Here</a>
<!-- SNIP: Extra code that dosen't matter -->
<script>
var $someButton = $('#some-button');
$(document).ready(function() {
$someButton.click(function (e) {
e.preventDefault();
window.open('@Url.Action("Foo", "Home", new {p1 = Model.Property1, p2 = Model.Property2, pX = Model.SomeOtherProperty})', '_blank');
});
});
</script>
...在評論,我檢查了呈現的HTML。該值來與價值觀,符合市場預期...
<input name="Property1" data-val="true" data-val-required="(Required)" type="text" value="1/1/2013">
<input name="Property2" data-val="true" data-val-required="(Required)" type="text" value="4/11/2013">
<input name="SomeOtherProperty" data-val="true" data-val-required="(Required)" type="text" value="42">
<a href='#' id='some-button'>Button Text Here</a>
<script>
var $someButton = $('#some-button');
$(document).ready(function() {
$someButton.click(function (e) {
e.preventDefault();
window.open('http://localhost:xxxx/Home/Foo?p1=1%2F1%2F2013&p2=4%2F11%2F2013&pX=42', '_blank');
});
});
</script>
...並在服務器端...
public ActionResult Foo(string p1, string p2, string pX)
{
var workModel = new FooWorkModel
{
Property1 = p1,
Property2 = p2,
SomeOtherProperty = pX
};
// Do something with this model, dosen't really matter from here, though.
return new FileContentResult(results, "application/some-mime-type");
}
我注意到,只有第一個參數(p1
)越來越來自前端的價值;我的所有其他參數正在傳遞空值!
問題:爲某些值分配給這些其他字段時,ActionResult爲什麼會傳遞空值?或者,一個免費的問題:爲什麼只有第一個參數成功通過它的值,而其他一切都失敗了?
你呈現的HTML看起來像什麼?當頁面加載時,Property2和SomeOtherProperty是否設置爲空值? – 2013-04-11 19:57:25
屬性1,2和SomeOtherProperty全部填充。值得注意的是,我正在使用的過程要求輸入信息,並點擊搜索鏈接。這提交了一個模型的副本(填充信息),作爲搜索的標準。該信息被填充到子模型列表中,並且具有> 0的計數的列表允許我編碼的鏈接甚至被呈現。 – 2013-04-11 20:01:44
Andrew,window.open('@ Url.Action(「Foo」,「Home」,new {p1 = Model.Property1,p2 = Model.Property2,pX = Model.SomeOtherProperty})','_blank');這行代碼在HTML中產生了什麼?當js運行時,您粘貼的輸入值不會被使用。 – 2013-04-11 20:23:23