質問

私は通常のASP.NET MVCプロジェクト(Web APIではなく)を持っています。ここでは、簡単なAPIを作成したいのと同じように、コントローラの中に「API」という新しいフォルダを作成しました。

次のクラスを作成します。

public class OfficeProductController : ApiController
{
    [HttpPost]
    public JsonResult Create(OfficeProductViewModel model)
    {
        var obj = new OfficeProductViewModel();
        return Json(obj);
    }
}
.

ここに2つの問題があります:

  • httppost:「あいまいな参照」(http.httppostttributeとmvc.httppostttribute)
  • json()は認識されません。それは単に「シンボルJSONを解決できない」
  • を私に与えます

正しく覚えていれば、これはWeb APIプロジェクトで機能します。

私は何をしていますか?追加する必要があるもの?

役に立ちましたか?

解決

LARS、2番目の質問=> JSONRESULTの代わりにofficeProductViewModelを返すことができます。 JSONResultはWebAPIでは使用されていないActionResultです。

jsonResultは、ApicontrollerがSystem.Web.HTTP(Web API Stuff)にあるSystem.Web.MVCネームスペースにあります。

最初の質問=> ApicontrollerでSystem.Web.mvcを参照していないことを確認してください.System.Web.HTTPだけです。両方のネームスペースにHTTPPostオブジェクトがあり、MVCバージョンを使用したくない

XMLではなくApicontrollersのデフォルトの戻り値としてJSONを設定する;

のようなWebApiConfigクラスでこれをオーバーライドできます。
var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
.

Scott Hanselmanはこれについても素敵な記事を持っています。 >> http://www.hanselman.com/blog/oneaspnetmakingjsonwebapiswithaspneaspnetmvc4betaandaspnetwebapi.aspx

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top