相关疑难解决方法(0)

UpdateModel前缀 - ASP.NET MVC

我遇到了麻烦TryUpdateModel().我的表单字段以前缀命名,但我使用 - 作为我的分隔符而不是默认点.

<input type="text" id="Record-Title" name="Record-Title" />
Run Code Online (Sandbox Code Playgroud)

当我尝试更新模型时,它不会更新.如果我更改名称属性,Record.Title它可以完美地工作,但这不是我想要做的.

bool success = TryUpdateModel(record, "Record");
Run Code Online (Sandbox Code Playgroud)

是否可以使用自定义分隔符?

asp.net-mvc

10
推荐指数
2
解决办法
7735
查看次数

ASP.NET MVC 3模型绑定和表单字段

我有一个名为的实体Domain.Models.BlogPost,它包含以下属性:

  • 帖子ID
  • 标题
  • 作者
  • 发表日期
  • 身体

我还有一个名为的实体Domain.Models.PostComment,它包含以下属性:

  • CommentID
  • 帖子ID
  • 作者
  • 电子邮件
  • 网站
  • 身体

BlogPost包含很多PostComments.一对多关系.

现在我有这样的观点(通过html评论从博客文章代码中分离出评论表):

@model Domain.Models.BlogPost
@using Domain.Models;
@{
    ViewBag.Title = "Post";
}
<div class="postTitle">@Model.Title</div>
<div class="subInfo">
    Posted by @Model.Author on @Model.PostedDate.ToString("D")
</div>
<div class="postBody">
    @Html.Markdown(Model.Body)
</div>
<br />
@Model.PostComments.Count Comment(s).
<div class="comments">
@foreach (PostComment postComment in Model.PostComments)
{
    Html.RenderPartial("PostComment", postComment);
}
</div>

<!-- BELOW IS THE ADD COMMENT FORM -->

<div id="addComment">
@using (Html.BeginForm("AddComment", "Blog"))
{
    <text>
    @Html.Hidden("PostID", Model.PostID)<br />
    Name: …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc model-binding razor asp.net-mvc-3

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

为ID而不是名称设置HtmlFieldPrefix

设置ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix将添加所有name id属性.

我想知道是否有一种方法只是前缀id而不是name单独留下.

场景是这样的:AJAX在页面上多次加载局部视图.我们使用的JavaScript库需要使用ids,但我们也希望能够发布表单(因此name需要匹配服务器模型).

我们当前的解决方案是每次加载局部视图时生成一个唯一的数字,设置HtmlFieldPrefixitems[n](n生成的数字在哪里)以及我们采取行动来接收一个数组items(我们只需要接收一个).这为我们提供了一个全局唯一idname,可以通过模型绑定器进行解析.

但这感觉很难看.有什么建议?

asp.net-mvc razor

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

标签 统计

asp.net-mvc ×3

razor ×2

asp.net-mvc-3 ×1

c# ×1

model-binding ×1