老革命永远都在遇上各种似是而非的老问题。
这次,是这个Html.Partial,分部页。
Html.Partial与Html.Action有啥区别呢?区别就是,Html.Partial只有一个视图,而Html.Action除了视图,还真的有个Action跟它对应,所以,Html.Action功能比Html.Partial要强。
Html.Partial如何使用呢?
注意看参数如何传递和接收。
代码一,Html.Partial
@using BaseLT.Web
@{
var url = ViewData["Url"].ToString();
}
<button type="button" id="btnSave" class="btn ltblue"><i class="icon-ok"></i> 保存</button>
<script type="text/javascript">
$(function(){
$("#btnSave").bind("click",function(){
$.ajax({
url: "@url",
data: $('#mainForm').serialize(),
type: 'post',
success: function (data) {
...
},
error: function (e) {
...
}
});
});
});
</script>
代码二、如何调用这个Html.Partial
@Html.Partial("_Save", Model, new ViewDataDictionary()
{
new KeyValuePair<string, object>("Url", Url.StaticFile("~/Admin/Role/EditSave/") + Model.ROLEID)
})
值得一提的是,分部页与调用页不在同一个目录下,相反,相隔很远。那么如何指明它的位置才能引用呢?要不要这样写:
@Html.Partial("~/Views/Shared/_Save")
答案是无须指明,以上写法是错误的。只需将分部页放在根目录下的views/shared/即可,我猜系统会先从调用页所在目录、所在层的shared 查找;然后再从根目录下的views/shared查找。如果
老革命以前遇到的这个问题:
ASP.NET MVC之Html.RenderAction