ASP.NET MVC3,使用Forms GET方法在Model内部的集合,并且是URL / SEO友好的

时间:2012-01-01 18:36:59

标签: asp.net asp.net-mvc-3 razor url-rewriting icollection

让我描述一下我的代码,然后我问这个问题。

我有这样的课程

public class MyModel
{
    public virtual ICollection<SomeObject> fweek { get; set; }
    public virtual ICollection<SomeObject> ftxt { get; set; }
    public virtual ICollection<SomeObject> fbool { get; set; }
}

然后我正在为这样的模型创建编辑器:

@model MyModel
@using(Html.BeginForm("SomeAction", "SomeController", FormMethod.GET))
{
    @Html.EditorFor(m => m.fweek)
    @Html.EditorFor(m => m.ftxt)
    @Html.EditorFor(m => m.fbool)
    <input type="submit" value="Submit" />
}

如果我提交表单,我会被重定向到类似的网址:

http://localhost:3517/pl-PL/Places/Search?
fbool%5B0%5D.Value=false&
fweek%5B0%5D.Value=1&
fweek%5B1%5D.Value=2&
ftxt%5B0%5D.Value=23fasf&
ftxt%5B1%5D.Value=assffg&

问题是: 是否有可能重写这样的URL(特别是%5B和%5D序列)变得更加SEO /用户友好? 让我们说这个示例URL可能如下所示:

http://localhost:3517/pl-PL/Places/Search?
fbool.Value=false&
fweek.Value=1&
fweek.Value=2&
ftxt.Value=23fasf&
ftxt.Value=assffg&

感谢您的帮助。 问候。

1 个答案:

答案 0 :(得分:0)

http://localhost:3517/pl-PL/Places/Search?
fbool.Value=false&
fweek.Value=1&
fweek.Value=2&
ftxt.Value=23fasf&
ftxt.Value=assffg&

这在任何情况下都不起作用,因为您要发送多个具有相同名称的表单字段,因此他们需要有一个与之关联的索引。 I.E.

fweek[0].Value=1&fweek[1].Value =2

如果没有索引,您如何确定哪个fweek是哪个?

为什么不发布此表单?

相关问题