Prefill Html Editor Asp.net MVC

时间:2017-04-09 17:14:08

标签: c# asp.net asp.net-mvc razor

我希望在加载页面时填充@Html.Editor的值。这是我失败的尝试:

 @Html.EditorFor(m => m, new { htmlAttributes = new { @class = "form-control" } })

在Razor页面的顶部,我有这个:

@model string

这是我的控制者:

public ActionResult YeniBelge(string KimlikNo)
{
    return View((object)KimlikNo);
}

它表示价值不能为空。

我怎样才能使这个正确?感谢。

4 个答案:

答案 0 :(得分:1)

使用控制器中的数据填充模型,然后使用

 QueryOptions queryOptions = new QueryOptions();
    List<String> list = new ArrayList<String>() ;
    list.add("point DESC") ; 
    queryOptions.setSortBy(list);
    BackendlessDataQuery backendlessDataQuery = new BackendlessDataQuery();
    backendlessDataQuery.setQueryOptions(queryOptions);

    Backendless.Data.of(BackendlessUser.class).find(backendlessDataQuery, new AsyncCallback<BackendlessCollection<BackendlessUser>>() {
        @Override
        public void handleResponse(BackendlessCollection<BackendlessUser> one) {


            while(one.getCurrentPage().size()>0) {
                Iterator<BackendlessUser> it = one.getCurrentPage().iterator();

                while (it.hasNext()) {

                //something here,not so important 



                }

                one.nextPage(this);// here I want to get next page,
              //but seems like it does not work, cause my loop became infinite







            }







   }

答案 1 :(得分:1)

就像@vortex指出的那样,你需要使用EditorFor模板。

@Html.EditorFor(model => model.TCKimlikNo, new { htmlAttributes = new { @class = "form-control"  } })

如果您在页面顶部加载了模型,则会在表单中填入模型字段的当前值。

答案 2 :(得分:1)

我怀疑您正在尝试为模型分配一个可能为null的字符串,该字符串永远不会为null。创建一个ViewModel类并改为使用它:

public class MyViewModel {
    public string TCKimlikNo { get; set; }
}

public ActionResult YeniBelge(string KimlikNo)
{
    return View(new MyViewModel { KimlikNo = KimlikNo ?? "My Default Value" });
}

然后在你看来:

@model MyViewModel

@Html.EditorFor(m => m.TCKimlikNo, new { htmlAttributes = new { @class = "form-control"  } })

答案 3 :(得分:1)

在您的控制器中更改为以下内容。

  public class KimlikNoViewmodel
    {
        public string KimlikNo { get; set; }
    }

    public ActionResult YeniBelge (string KimlikNo)
    {
        KimlikNoViewmodel viewModel = new KimlikNoViewmodel();
        viewModel.KimlikNo = KimlikNo;

        return View(viewModel);
    }
在您看来,我怀疑您没有找到该型号。调用Model时需要包含项目名称。

@model YourProjectName.Controllers.KimlikNoViewmodel

我建议实际保存我们在View模型文件下的Models文件夹中创建的View模型,然后再调用以下内容。

@model YourProjectName.Models.KimlikNoViewmodel